首先建一个基于视图的的项目命名为PlayVideo,并给项目中的Frameworks添加MediaPlayer.framework,如图所示:
加进去了以后,再给文件里添加一个视频文件video.m4v,注意扩展名,我先开始添加的视频文件的扩展名为mp4,结果一直播放的时候就是不播,所以我把视频转换成m4v扩展名就行了!
接下来是在PlayViewContrller.h文件:
- #import <UIKit/UIKit.h>
- #import <MediaPlayer/MediaPlayer.h>
- @interface PlayVideoViewController : UIViewController{
- MPMoviePlayerController *player;//控制视频播放
- }
- @end
然后是PlayViewController.m文件中添加代码实现:
- - (void)viewDidLoad
- {
- //获取视频文件的名称
- NSString *url=[[NSBundle mainBundle]pathForResource:@"video" ofType:@"m4v"];
- //初始化player,文件是video.m4v
- player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:url]];
- //然后,您使用的NSNotificationCenter类注册通知,这样当影片完成播放(即结束)的时候调用movieFinishedCallback:方法;
- [[NSNotificationCenter defaultCenter]
- addObserver:self selector:@selector(movieFinishedCallback:)
- name:MPMoviePlayerPlaybackDidFinishNotification object:player];
- //设置视频视图的大小
- player.view.frame = CGRectMake(10, 10, 300, 300);
- //添加控件
- [self.view addSubview:player.view];
- //播放影片
- [player play];
- [super viewDidLoad];
- }
- //电影停止播放时,你应该注销的通知,删除的影片,然后释放播放对象:
- -(void)movieFinishedCallback:(NSNotification*) aNotification {
- MPMoviePlayerController *moviePlayer = [aNotification object];
- //注销通知
- [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
- //删除影片
- [moviePlayer.view removeFromSuperview];
- //释放
- [player release];
- }
实现效果:
点击 右下角放大图标
双击屏幕变成全屏:
点击Done按钮恢复原状!!!