1一般的播放需求: 如果只是一般的视频播放的话,并不需要暂停或者继续播放什么的控制。可以使用AVKit框架。这个框架里面只有一个类,然后一个代理方法。AVPlayerViewControllerClass,和AVPlayerViewControllerDelegate Protocol 。下面是使用方法以及播放效果
#pragma mark视频
- (void)playMediawithSuperView:(UIView*)superView
{
//播放视频
NSString*path =[[NSBundlemainBundle]pathForResource:@"startappvideo"ofType:@"mp4"];
NSURL*url = [NSURLfileURLWithPath:path];
_moviePlayerController= [[AVPlayerViewControlleralloc]init];
_moviePlayerController.player=[[AVPlayeralloc]initWithURL:url];
_moviePlayerController.view.frame= [superViewbounds];
[superViewaddSubview:_moviePlayerController.view];
_moviePlayerController.showsPlaybackControls=NO;//不会显示播放时间播放开始按钮什么的
_moviePlayerController.player.actionAtItemEnd=AVPlayerActionAtItemEndNone;
[_moviePlayerController.playerplay];
}
效果图如下
2 在iOS中播放视频可以使用MediaPlayer.framework种的MPMoviePlayerController类来完成,它支持本地视频和网络视频播放。这个类实现了MPMediaPlayback协议,因此具备一般的播放器控制功能,例如播放、暂停、停止等。但是MPMediaPlayerController自身并不是一个完整的视图控制器,如果要在UI中展示视频需要将view属性添加到界面中。这个内部有一个MPMoviePlayerController的视图控制器就是MPMoviePlayerViewController,它继承于UIViewController。MPMoviePlayerViewController内部多了一个moviePlayer属性和一个带有url的初始化方法,同时它内部实现了一些作为模态视图展示所特有的功能,例如默认是全屏模式展示、弹出后自动播放、作为模态窗口展示时如果点击“Done”按钮会自动退出模态窗口等。
NSString *path = [[NSBundle mainBundle]pathForResource:@"startappvideo" ofType:@"mp4"];
NSURL *url = [NSURL fileURLWithPath:path];
moviePlayerController = [[MPMoviePlayerController alloc]init];
moviePlayerController.contentURL = url;
moviePlayerController.fullscreen=YES;
moviePlayerController.controlStyle=MPMovieControlStyleFullscreen;
moviePlayerController.view.frame = self.view.bounds;
[self.view addSubview:moviePlayerController.view];
[moviePlayerController play];
MPMoviePlayerController足够强大,几乎不用写几行代码就能完成一个播放器,但是正是由于它的高度封装使得要自定义这个播放器变得很复杂,甚至是不可能完成。例如有些时候需要自定义播放器的样式,那么如果要使用MPMoviePlayerController就不合适了,如果要对视频有自由的控制则可以使用AVPlayer。AVPlayer存在于AVFoundation中,它更加接近于底层,所以灵活性也更强。