版权声明:本文为博主原创文章,未经博主允许不得转载。
iOS播放视频文件一般使用 MPMoviePlayerViewController 和 MPMoviePlayerController。前者是一个view,后者是个Controller。区别就是 MPMoviePlayerViewController里面包含了一个MPMoviePlayerController
注意:MPMoviePlayerViewController 必须 presentMoviePlayerViewControllerAnimated方式添加,否则Done按钮是不会响应通知MPMoviePlayerPlaybackDidFinishNotification事件的;
首先要包含 #import <MediaPlayer/MediaPlayer.h>头文件和MediaPlayer.framework。
MPMovieControlModeDefault 显示播放 / 暂停、音量和时间控制
MPMovieControlModeVolumeOnly 只显示音量控制
MPMovieControlModeHidden 没有控制器
你可以使用下列宽高比值:
MPMovieScallingModeNone 不做任何缩放
MPMovieScallingModeAspectFit 适应屏幕大小,保持宽高比
MPMovieScallingModeAspectFill 适应屏幕大小,保持宽高比,可裁剪
MPMovieScallingModeFill 充满屏幕,不保持宽高比
//通知
MPMoviePlayerContentPreloadDidFinishNotification 当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。
MPMoviePlayerScallingModeDidChangedNotification 当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。
MPMoviePlayerPlaybackDidFinishNotification 当电影播放完毕或者用户按下了 Done 按钮后发出
===============================================================================
需要引进的框架:MediaPlayer.framework
第一步:引进框架设置属性
- #import "RootViewController.h"
- #import <MediaPlayer/MediaPlayer.h>
- @interface RootViewController ()
- @property (nonatomic, strong) MPMoviePlayerController *moviePlayer;
- @end
- @implementation RootViewController
调用:
- - (void)viewDidLoad {
- [super viewDidLoad];
- // 5.调用播放器
- //播放网络视频
- NSString *urlString = @"http://video.szzhangchu.com/qiaokeliruanxinbudingA.mp4";
- //播放本地视图,找到文件的路径
- // NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"优酷网-唐豆豆微信摇一摇惨被骗.mp4" ofType:nil];
- [self createMPPlayerController:urlString];
- }
第二步:创建播放器
- - (void)createMPPlayerController:(NSString *)string
- {
- // 1.初始化播放器
- //准备网址
- // NSURL *urlString = [NSURL fileURLWithPath:fileNamePath];
- NSURL *urlString = [NSURL URLWithString:string];
- //初始化播放器
- self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:urlString];
- //准备播放
- // [_moviePlayer prepareToPlay];
- //设置moviePlayer的frame
- _moviePlayer.view.frame = self.view.frame;
- //添加到父视图
- [self.view addSubview:_moviePlayer.view];
- // 2.配置属性
- //是否自动播放,默认是NO
- _moviePlayer.shouldAutoplay = YES;
- //设置播放器的样式
- [_moviePlayer setControlStyle:(MPMovieControlStyleFullscreen)];
- //开始播放
- [_moviePlayer play];
- // 3.注册通知
- //注册通知
- [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinshed:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
- }
第三步:实现通知方法
- // 4.实现通知中的方法
- - (void)movieFinshed:(NSNotification *)sender
- {
- //取出通知中心的moviePlayer
- MPMoviePlayerController *movie = [sender object];
- //移除观察者
- [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
- //将movie移出父视图
- [movie.view removeFromSuperview];
- }
最终效果:
关注博主微博每日更新技术:http://weibo.com/hanjunqiang