08-MPMoviePlayerController/MPMoviePlayerViewController
2015-07-08 18:55
585 查看
ios播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。前者是一个view,后者是个Controller。区别就是MPMoviePlayerViewController里面包含了一个MPMoviePlayerController
这两个都继承于NSObject,都能播放本地视频、流媒体、网络视频
首先要包含 #import <MediaPlayer/MediaPlayer.h>头文件
@"http://bcs.duapp.com/chenwei520/media/mobile_vedio.mp4"
一、MPMoviePlayerController 自定义播放视频方法
二、MPMoviePlayerViewController 自定义播放视频方法
这两个都继承于NSObject,都能播放本地视频、流媒体、网络视频
首先要包含 #import <MediaPlayer/MediaPlayer.h>头文件
@"http://bcs.duapp.com/chenwei520/media/mobile_vedio.mp4"
一、MPMoviePlayerController 自定义播放视频方法
MPMoviePlayerController *movie; - (void)viewDidLoad { [super viewDidLoad]; if(movie == nil) NSURL *url = [NSURL URLWithString:@"http://bcs.duapp.com/chenwei520/media/mobile_vedio.mp4"]; movie = [[MPMoviePlayerController alloc] initWithContentURL:url]; movie.view.frame = CGRectMake(20, 20, 200, 200); movie.controlStyle = MPMovieControlStyleFullscreen; [self.view addSubview:movie.view]; } // 注册一个播放结束的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:movie]; [movie play]; } #pragma mark -------------------视频播放结束委托-------------------- /* @method 当视频播放完毕释放对象 */ -(void)myMovieFinishedCallback:(NSNotification*)notify { //视频播放对象 MPMoviePlayerController* theMovie = [notify object]; //销毁播放通知 [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie]; [theMovie.view removeFromSuperview]; } |
注意:MPMoviePlayerViewController 必须 presentMoviePlayerViewControllerAnimated方式添加,否则Done按钮是不会响应通知MPMoviePlayerPlaybackDidFinishNotification事件的; --------------------------------------------------------代码-------------------------------------------------- MPMoviePlayerViewController *moviePlayer; - (IBAction)play:(UIButton *)sender { MPMoviePlayerViewController *moviePlay = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:@"http://bcs.duapp.com/chenwei520/media/mobile_vedio.mp4"]]; moviePlay.moviePlayer.view.backgroundColor = [UIColor clearColor]; // moviePlay.moviePlayer.controlStyle = MPMovieControlStyleFullscreen; /**缓存*/ [moviePlay.moviePlayer prepareToPlay]; /**播放*/ [moviePlay.moviePlayer play]; [self presentMoviePlayerViewControllerAnimated:moviePlay]; /**注册通知事件*/ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; } //通知触发事件方法 - (void)myMovieFinishedCallback:(NSNotification *)notif { //拿到播放器 MPMoviePlayerController *player = notif.object; if (player.playbackState == MPMoviePlaybackStateStopped) { NSLog(@"停止播放"); } //销毁通知 [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:player]; //移除视图 [player.view removeFromSuperview]; } --------------------------------------------------------代码-------------------------------------------------- 以下是资料 moviePlayer.moviewControlMode = MPMovieControlModeDefault; MPMovieControlModeDefault 显示播放 / 暂停、音量和时间控制 MPMovieControlModeVolumeOnly 只显示音量控制 MPMovieControlModeHidden 没有控制器 moviePlayer.scallingMode = MPMovieScallingModeAspectFit; 你可以使用下列宽高比值: MPMovieScallingModeNone 不做任何缩放 MPMovieScallingModeAspectFit 适应屏幕大小,保持宽高比 MPMovieScallingModeAspectFill 适应屏幕大小,保持宽高比,可裁剪 MPMovieScallingModeFill 充满屏幕,不保持宽高比 MPMoviePlayerContentPreloadDidFinishNotification 当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。 MPMoviePlayerScallingModeDidChangedNotification 当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。 MPMoviePlayerPlaybackDidFinishNotification 当电影播放完毕或者用户按下了 Done 按钮后发出 |
相关文章推荐
- DVI 视频接口图文解析
- C#调用mmpeg进行各种视频转换的类实例
- C#获取视频某一帧的缩略图的方法
- java音频播放示例分享(java如何播放音频)
- 显示youtube视频缩略图和Vimeo视频缩略图代码分享
- iOS开发之路--微博“更多”页面
- python通过wxPython打开一个音频文件并播放的方法
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP实现将视频转成MP4并获取视频预览图的方法
- C++实现优酷土豆去视频广告的方法
- PHP简单获取视频预览图的方法
- asp.net 页面中添加普通视频的几种方式介绍
- Android获取SD卡上图片和视频缩略图的小例子
- php使用memcoder将视频转成mp4格式的方法
- 基于js与flash实现的网站flv视频播放插件代码
- java调用ffmpeg实现视频转换的方法
- iOS开发之路--微博骨架搭建
- js+HTML5基于过滤器从摄像头中捕获视频的方法
- IOS开发代码分享之获取启动画面图片的string
- 用Python的Django框架完成视频处理任务的教程