iphone之MPMoviePlayer 视频…
2013-08-19 18:20
344 查看
原文地址:iphone之MPMoviePlayer 视频播放作者:飞舞的鸡毛 iphone的视频播放官方的例子有问题。这次是费了比较长的时间。
原因是在sdk3.2以后。视频这一块官方有很大的改动造成的。
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
远程视频:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
本地视频:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
首先需要引入视频包;
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
代码如下:
#import
<UIKit/UIKit.h>
#import
<MediaPlayer/MediaPlayer.h>
@interface View24 :
UIViewController
{
//sdk3.2以后
MPMoviePlayerViewController *_moviePlayViewController;
//sdk3.2以前
MPMoviePlayerController *_moviePlayerController;
}
//远程视频事件
-
(IBAction) playURLVideo;
//本地视频事件
-
(IBAction) playFileVideo;
@property (nonatomic,retain) MPMoviePlayerViewController
*_moviePlayViewController;
@property (nonatomic,retain) MPMoviePlayerController
*_moviePlayerController;
-(void)
initAndPlay:(NSString
*)videoURL;
@end
//本地视频事件
-(IBAction) playFileVideo
{//此方法只是 3。2以后的方法
NSString *path=[[NSBundle mainBundle] pathForResource:@"sophie" ofType:@"mov"];
NSURL *url=[[NSURL alloc] initFileURLWithPath:path];
MPMoviePlayerViewController*
tmpMoviePlayViewController=[[MPMoviePlayerViewController
alloc] initWithContentURL:url];
if
(tmpMoviePlayViewController)
{
self._moviePlayViewController=tmpMoviePlayViewController;
[self
presentMoviePlayerViewControllerAnimated:_moviePlayViewController];
_moviePlayViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[_moviePlayViewController.moviePlayer play];
}
[tmpMoviePlayViewController release];
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(playbackDidFinish) name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
}
//远程视频事件
-
(IBAction) playURLVideo
{
NSString *videoPath
=@"http://www.subfurther.com/video/running-start-iphone.m4v";
if (videoPath == NULL)
return;
[self initAndPlay:videoPath];
}
-(void)
initAndPlay:(NSString
*)videoURL
{
if
([videoURL
rangeOfString:@"http://"].location!=NSNotFound||[videoURL rangeOfString:@"https://"].location!=NSNotFound)
{
NSURL *URL = [[NSURL alloc] initWithString:videoURL];
if (URL) {
if ([[[UIDevice currentDevice] systemVersion] doubleValue]
>= 3.2)
{//3。2以后
MPMoviePlayerViewController*
tmpMoviePlayViewController=[[MPMoviePlayerViewController
alloc] initWithContentURL:URL];
if
(tmpMoviePlayViewController)
{
self._moviePlayViewController=tmpMoviePlayViewController;
[self
presentMoviePlayerViewControllerAnimated:_moviePlayViewController];
_moviePlayViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[_moviePlayViewController.moviePlayer play];
}
[tmpMoviePlayViewController release];
}
else if([[[UIDevice currentDevice] systemVersion] doubleValue]
< 3.2)
{//3。2以前
MPMoviePlayerController*
tmpMoviePlayController=[[MPMoviePlayerController
alloc] initWithContentURL:URL];
if (tmpMoviePlayController)
{
self._moviePlayerController=tmpMoviePlayController;
[_moviePlayerController
play];
}
[tmpMoviePlayController release];
}
//视频播放完成通知
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(playbackDidFinish) name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
}
[URL
release];
}
}
//视频播放完成后事件
-
(void) playbackDidFinish
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
if
(_moviePlayViewController)
{
[self
dismissMoviePlayerViewControllerAnimated];
[self._moviePlayViewController.moviePlayer stop];
_moviePlayViewController.moviePlayer.initialPlaybackTime=-1.0;
[_moviePlayViewController release];
_moviePlayViewController=nil;
}
if
(_moviePlayerController)
{
[self._moviePlayerController stop];
_moviePlayerController.initialPlaybackTime = -1.0;
[_moviePlayerController release];
_moviePlayerController
= nil;
}
}
原因是在sdk3.2以后。视频这一块官方有很大的改动造成的。
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
远程视频:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
本地视频:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
首先需要引入视频包;
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
代码如下:
#import
<UIKit/UIKit.h>
#import
<MediaPlayer/MediaPlayer.h>
@interface View24 :
UIViewController
{
//sdk3.2以后
MPMoviePlayerViewController *_moviePlayViewController;
//sdk3.2以前
MPMoviePlayerController *_moviePlayerController;
}
//远程视频事件
-
(IBAction) playURLVideo;
//本地视频事件
-
(IBAction) playFileVideo;
@property (nonatomic,retain) MPMoviePlayerViewController
*_moviePlayViewController;
@property (nonatomic,retain) MPMoviePlayerController
*_moviePlayerController;
-(void)
initAndPlay:(NSString
*)videoURL;
@end
//本地视频事件
-(IBAction) playFileVideo
{//此方法只是 3。2以后的方法
NSString *path=[[NSBundle mainBundle] pathForResource:@"sophie" ofType:@"mov"];
NSURL *url=[[NSURL alloc] initFileURLWithPath:path];
MPMoviePlayerViewController*
tmpMoviePlayViewController=[[MPMoviePlayerViewController
alloc] initWithContentURL:url];
if
(tmpMoviePlayViewController)
{
self._moviePlayViewController=tmpMoviePlayViewController;
[self
presentMoviePlayerViewControllerAnimated:_moviePlayViewController];
_moviePlayViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[_moviePlayViewController.moviePlayer play];
}
[tmpMoviePlayViewController release];
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(playbackDidFinish) name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
}
//远程视频事件
-
(IBAction) playURLVideo
{
NSString *videoPath
=@"http://www.subfurther.com/video/running-start-iphone.m4v";
if (videoPath == NULL)
return;
[self initAndPlay:videoPath];
}
-(void)
initAndPlay:(NSString
*)videoURL
{
if
([videoURL
rangeOfString:@"http://"].location!=NSNotFound||[videoURL rangeOfString:@"https://"].location!=NSNotFound)
{
NSURL *URL = [[NSURL alloc] initWithString:videoURL];
if (URL) {
if ([[[UIDevice currentDevice] systemVersion] doubleValue]
>= 3.2)
{//3。2以后
MPMoviePlayerViewController*
tmpMoviePlayViewController=[[MPMoviePlayerViewController
alloc] initWithContentURL:URL];
if
(tmpMoviePlayViewController)
{
self._moviePlayViewController=tmpMoviePlayViewController;
[self
presentMoviePlayerViewControllerAnimated:_moviePlayViewController];
_moviePlayViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[_moviePlayViewController.moviePlayer play];
}
[tmpMoviePlayViewController release];
}
else if([[[UIDevice currentDevice] systemVersion] doubleValue]
< 3.2)
{//3。2以前
MPMoviePlayerController*
tmpMoviePlayController=[[MPMoviePlayerController
alloc] initWithContentURL:URL];
if (tmpMoviePlayController)
{
self._moviePlayerController=tmpMoviePlayController;
[_moviePlayerController
play];
}
[tmpMoviePlayController release];
}
//视频播放完成通知
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(playbackDidFinish) name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
}
[URL
release];
}
}
//视频播放完成后事件
-
(void) playbackDidFinish
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
if
(_moviePlayViewController)
{
[self
dismissMoviePlayerViewControllerAnimated];
[self._moviePlayViewController.moviePlayer stop];
_moviePlayViewController.moviePlayer.initialPlaybackTime=-1.0;
[_moviePlayViewController release];
_moviePlayViewController=nil;
}
if
(_moviePlayerController)
{
[self._moviePlayerController stop];
_moviePlayerController.initialPlaybackTime = -1.0;
[_moviePlayerController release];
_moviePlayerController
= nil;
}
}
相关文章推荐
- iphone之MPMoviePlayer 视频播放
- iphone之MPMoviePlayer 视频播放
- iphone之MPMoviePlayer 视频播放(转)
- 转:iphone之MPMoviePlayer 视频播放
- iphone之MPMoviePlayer本地视频 与 远程视频
- iphone之MPMoviePlayer 视频播放
- IOS视频开发之MPMoviePlayerController
- iOS疯狂详解之视频播放MPMoviePlayerViewController
- (iPhone/iPad开发)细数Xcode 4.6+iOS 6 SDK中存在的bug漏洞之MPMoviePlayerController、AVAudioRecorder
- 关于MPMoviePlayerController以及MPMoviePlayerViewControlle流媒体视频播放
- iPhone控件之MPMoviePlayerViewController
- (ios)MPMoviePlayerController首次播放视频的时候,没有控制条
- iOS 视频播放(AVPlayer、MPMoviePlayerController、MPMoviePlayerViewController 区别)
- 7.iOS 视频播放2MPMoviePlayerViewController
- 视频播放MPMoviePlayerViewController
- 视频播放MPMoviePlayerController
- iPhone开发笔记(1)MPMoviePlayerController的用法和播放时只有声音没有图像的解决办法
- iOS 视频播放之MPMoviePlayerController
- 照相、从相册上取照片、播放音频、播放本地视频、播放网络视频、MPMoviePlayerController
- 视频播放MPMoviePlayerViewController