详细介绍下ios用MPMoviePlayerController来播放视频
来源:互联网 发布:https协议端口 编辑:程序博客网 时间:2024/09/21 06:46
视频播放:
视频播放有几个类可以实现,其中最适合用来播放视频的就是MPMoviePlayerController(在xcode5.0以上版本后需要将其创建的变量设置为全局才能正常播放),要调用该类要#import<MediaPlayer/MediaPlayer.h>的头文件,每次通过MPMoviePlayerController创建的视频变量使用完之后都要进行销毁(非arc),MPMoviePlayerController里面包含了很多通知方法用来监听视频对象,例如:(整理我觉得比较常用的几个,前面两个我觉得最重要)
MPMoviePlayerPlaybackDidFinishNotification
当电影播放完毕或者用户按下了Done按钮后发出。
MPMoviePlayerNowPlayingMovieDidChangeNotification
当电影开始播放时调用的通知方法,当你需要视频开始播放时实现什么功能你可以使用。
MPMoviePlayerContentPreloadDidFinishNotification
当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。
MPMoviePlayerScallingModeDidChangedNotification
当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。
使用MPMoviePlayerController实现视频的播放具体步骤:
总体的方法实现:
1.先定义一个类型的全局变量_movie(我觉得这步很重要)
@interface TKVideo2ViewController ()
{
MPMoviePlayerController *playerVc;
}
@end
2.通过url播放视频方法:
// 1.获得视频播放的URL
NSURL *videoUrl = [NSURLfileURLWithPath:filePath];
// 2.根据url创建视频变量
playerVc = [[MPMoviePlayerControlleralloc]initWithContentURL:videoUrl];
playerVc.view.frame =CGRectMake(0,0,kScreenWidth,kScreenWidth * (9.0 /16.0));
playerVc.scalingMode =MPMovieScalingModeAspectFill;
playerVc.controlStyle =MPMovieControlStyleDefault;
[self.viewaddSubview:playerVc.view];
[playerVc play];
//1 监听播放状态
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(stateChange)name:MPMoviePlayerPlaybackStateDidChangeNotificationobject:nil];
//2 监听播放完成
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(finishedPlay:)name:MPMoviePlayerPlaybackDidFinishNotificationobject:nil];
//3视频截图
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(caputerImage:)name:MPMoviePlayerThumbnailImageRequestDidFinishNotificationobject:nil];
//4退出全屏通知
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(exitFullScreen)name:MPMoviePlayerDidExitFullscreenNotificationobject:nil];
//5全屏播放
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(enterFullscreen)name:MPMoviePlayerDidEnterFullscreenNotificationobject:nil];
#pragma mark -监听播放状态
- (void)stateChange {
switch (self.playerVc.playbackState) {
caseMPMoviePlaybackStatePaused:
NSLog(@"暂停");
break;
caseMPMoviePlaybackStatePlaying:
NSLog(@"播放");
break;
caseMPMoviePlaybackStateStopped:
//注意:正常播放完成,是不会触发MPMoviePlaybackStateStopped事件的。
//调用[self.player stop];方法可以触发此事件。
NSLog(@"停止");
break;
default:
break;
}
}
#pragma mark -监听播放完成
- (void)finishedPlay:(NSNotification *)notification {
NSLog(@"播放完成");
// 1.视频播放对象
MPMoviePlayerController* theVideo = [notificationobject];
// 2.销毁播放通知
[[NSNotificationCenterdefaultCenter]removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:theVideo];
// 播放结束移除视频对象(非arc记得release!!)
[theVideo.viewremoveFromSuperview];
}
- (void)finishedPlayBtn {
[self.playerVcstop];
[self.playerVc.viewremoveFromSuperview];
}
#pragma mark -进入全屏
- (void)enterFullscreen {
NSLog(@"进入全屏");
CGAffineTransform landscapeTransform =CGAffineTransformMakeRotation(M_PI_2);
self.playerVc.view.transform = landscapeTransform;
}
#pragma mark -视频截图
- (void)caputerImage:(NSNotification *)notification {
NSLog(@"视频截图");
}
#pragma mark -退出全屏通知
- (void)exitFullScreen {
NSLog(@"退出全屏");
CGAffineTransform landscapeTransform =CGAffineTransformMakeRotation(M_PI *2);
self.playerVc.view.transform = landscapeTransform;
self.playerVc.fullscreen =NO;
}
还想给大家介绍的一个就是视频的controlStyle属性,他是一个枚举类型,它使视频的播放类型,我简单介绍这4个类型:(这是xcode头文件的描述,我自己也试了一下)
MPMovieControlStyleNone, // 没有任何控制操作
MPMovieControlStyleEmbedded, // 默认普通播放,但是有暂停和全屏的控制按钮
MPMovieControlStyleFullscreen, // 默认全屏播放,有一个结束播放的done按钮,还有暂停按钮、下一个视频和上一个视频的切换按钮
MPMovieControlStyleDefault = MPMovieControlStyleEmbedded // 默认的播放控制模式就是跟上面的embedded一样的意思
其他属性:
MPMovieScalingModeNone, // 无缩放
MPMovieScalingModeAspectFit, // 适应大小模式
MPMovieScalingModeAspectFill, // 充满可视范围,可能会被裁剪
MPMovieScalingModeFill // 缩放到充满视图
MPMoviePlaybackStateStopped,//停止播放
MPMoviePlaybackStatePlaying,//正在播放
MPMoviePlaybackStatePaused,//暂停播放
MPMoviePlaybackStateInterrupted,//中断播放
MPMoviePlaybackStateSeekingForward,//快进
MPMoviePlaybackStateSeekingBackward//快退
MPMovieControlStyleNone, // 无控制器
MPMovieControlStyleEmbedded, // 嵌入视频风格
MPMovieControlStyleFullscreen, // 全屏播放风格
MPMovieRepeatModeNone,//播放结束后不循环
MPMovieRepeatModeOne//循环
好了,我就给大家介绍到这里了,
- 详细介绍下ios用MPMoviePlayerController来播放视频
- 详细介绍下ios用MPMoviePlayerController来播放视频
- iOS视频播放-MPMoviePlayerController
- iOS视频播放器MPMoviePlayerController
- 6.iOS 视频播放 MPMoviePlayerController
- iOS MPMoviePlayerController使用,播放视频
- iOS 视频播放之MPMoviePlayerController
- iOS视频播放 [MPMoviePlayerController]
- MPMoviePlayerController 视频播放器—IOS开发
- iOS远程和本地视频播放-----MPMoviePlayerController
- ios开发之 MPMoviePlayerController 视频播放器
- iOS播放视频 MPMoviePlayerViewController 和 MPMoviePlayerController 使用说明
- ios开发之 MPMoviePlayerController 视频播放器
- ios学习--MPMoviePlayerController播放视频的方法
- iOS MPMoviePlayerController(视频播放器)~demo
- iOS 视频播放(AVPlayer、MPMoviePlayerController、MPMoviePlayerViewController 区别)
- 用MPMoviePlayerController播放视频的方法
- 用MPMoviePlayerController播放视频的方法
- POJ 2449 Remmarguts' Date(k短路)
- C语言——qsort排序
- POJ1466 Girls and Boys(二分匹配 匈牙利算法)
- cookie和session
- Cookie和HttpSession
- 详细介绍下ios用MPMoviePlayerController来播放视频
- 杭电oj 2039 三角形
- 正则表达式中的$ 遇到makefile
- 使用IOS7原生API进行二维码条形码的扫描
- C++/MFC修行之路(8)MFC中IPADDRESS控件的使用
- python思考
- 第一次c++上机实验
- Java day02 九九乘法表
- linux文件系统及常用的管理命令