MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程URL初始化,而AVAudioPlayer则不可以。不过大体上用起来感觉差不多。废话少说进入体验。
格式支持:MOV、MP4、M4V、与3GP等格式,还支持多种音频格式。

首先你得引入 MediaPlayer.framework.然后在使用到MPMoviePlayerController 的文件中导入相应的头文件。
一、创建
MPMoviePlayerController 类通过一个NSURL来初始化,这个URL可以使本地的,也可以是远程的。初始化需要通过 initWithContentURL 方法来实现:

[html]  view plain copy
  1. MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]initWithContentURL:[NSURL urlWithString:@"http://"] ];//远程

或者

[html]  view plain copy
  1. NSString* path =[ NSString stringWithFormat:@"%@/Documents/video.3gp",NSHomeDirectory()];//本地路径
  2. MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:path]];//本地的

二、属性设置
1.控制器样式

[html]  view plain copy
  1. moviePlayer.moviewControlMode = MPMovieControlModeDefault;

可以使用下列样式:
MPMovieControlModeDefault            显示播放/暂停、音量和时间控制
MPMovieControlModeVolumeOnly         只显示音量控制
MPMovieControlModeHidden             没有控制器
2.屏幕宽高比例

[html]  view plain copy
  1. moviePlayer.scallingMode = MPMovieScallingModeAspectFit;

你可以使用下列宽高比值:
MPMovieScallingModeNone            不做任何缩放
MPMovieScallingModeAspectFit       适应屏幕大小,保持宽高比
MPMovieScallingModeAspectFill      适应屏幕大小,保持宽高比,可裁剪
MPMovieScallingModeFill            充满屏幕,不保持宽高比
3.背景色
背景色会在电影播放器转入转出时使用,当电影不能充满整个屏幕时,也会用来填充空白区域。默认的背景色是黑色,不过你可以使用 UIColor 对象设置backgroundColor属性,来改变背景色:

[html]  view plain copy
  1. moviePlayer.backgroundColor = [UIColor redColor];

三、播放和停止电影
要播放电影请调用play 方法,电影播放控制器会自动将视图切换到电影播放器并开始播放:

[html]  view plain copy
  1. [ moviePlayer play ];

当用户点击Done按钮,或者 stop 方法被调用都会停止

[html]  view plain copy
  1. [ moviePlayer stop ];

当电影停止播放后会自动切回播放前应用程序所在的视图。
四、通知
你的程序可以配置电影播放器在何时候发送通知,包括结束加载内容、技术播放、改变宽高比等。电影播放器会将事件发送到 Cocoa 的通知中心,你可以对其进行配置,指定将这些事件转发到你的应用程序的一个对象。要接收这些通知,需要使用 NSNotificationCenter 类,为电影播放器添加一个观察者(observer):

[html]  view plain copy
  1. NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];
  2. [ notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:moviePlayer ];

通知会发到你指定的委托类和目标方法。通知参数让你可以知道是哪个事件触发了委托方法:

[html]  view plain copy
  1. -(void)moviePlayerPreloadDidFinish:(NSNotification*)notification{
  2. //添加你的处理代码
  3. }

你会观察到以下通知:
MPMoviePlayerContentPreloadDidFinishNotification 
当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。
MPMoviePlayerScallingModeDidChangedNotification 
当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。
MPMoviePlayerPlaybackDidFinishNotification

当电影播放完毕或者用户按下了Done按钮后发出。

转载地址:http://blog.csdn.net/iukey/article/details/7311126

IOS电影播放器—MPMoviePlayerController相关推荐

  1. (电影播放器)MPMoviePlayerController

    示例名:MoviePlayer(电影播放器) 功能:播放本地或网络视频 框架:MediaPlayer.framework 源码解释: 1 -initAndPlayMovie创建一个电影播放控制器,指定 ...

  2. iOS 之电影播放器

    PMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程URL ...

  3. MPMoviePlayerController 电影播放器—备用

    MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程UR ...

  4. mplayer - Linux下的电影播放器

    概要 mplayer [选项] [ 文件 | URL | 播放列表 | - ] mplayer [全局选项] 文件1 [特定选项] [文件2] [特定选项] mplayer [全局选项] {一组文件和 ...

  5. iOS 开发 - 播放器Demo开发记录

    iOS 开发 - 播放器Demo开发记录 标签: ios 2014-12-22 14:14 518人阅读 评论(0) 收藏 举报  分类: Mac OS X(50)  版权声明:本文为博主原创文章,未 ...

  6. totem 解码器_从Ubuntu中的Totem电影播放器​​清除历史记录

    totem 解码器 If you've been using the default movie player in Ubuntu to play videos, you might have not ...

  7. visual studio(C++)实现“照片电影”播放器

    VS C++实现"照片电影"播放器的软件架构和技术简介 前言:   这个播放器是两年前我大三时上多媒体课的结课大作业,代码部分有瑕疵是肯定的,希望有需要的人能够自己进行代码优化.当 ...

  8. 安卓期末大作业——Android在线电影播放器

    功能描述: 该在线电影播放app实现电影列表,播放网络电影,全屏,快进,快退,手势调节声音,亮度,进度条,锁屏等,适合新手学习.搭建方法请看入门教程菜单中的androidstudio项目搭建教程. 开 ...

  9. ios音乐播放器-仿QQ音乐

    这篇文章主要写一个iOS系统下的音乐播放器 , 包括简单的仿QQ音乐播放器界面.音乐播放.歌词解析.后台控制等  ,如果你正好需要 , 希望你看完后能够对你的提升有所帮助 , 当然,阅读中如果发现什么 ...

最新文章

  1. SoJpt Boot 2.3-3.8 发布,Spring Boot 使用 Jfinal 特性极速开发
  2. PL/SQL连接oracle数据库
  3. linux系统配置php环境,linux下php环境的搭建
  4. GDCM:改变dcm文件的PrivateTag测试程序
  5. R语言数据转换(split-apply-combin…
  6. 文本聚类分析算法_聚类分析算法综述
  7. mysql表空间_浅谈mysql中各种表空间(tablespaces)的概念
  8. 从IBM和SUN分析当前SOA公司现状
  9. iptables常用配置规则
  10. static 和 const的解释(转载)
  11. CentOS安装达梦(DM7)数据库详解
  12. 云计算第二天总结 10.29
  13. RACK与重复ACK
  14. 计算机组成原理和微机原理实验报告,《计算机组成原理》实验指导.doc
  15. XP下IIS相关问题
  16. 使用Excel中的公式计算日期
  17. 如何使用EasyNVR+CDN突破萤石云在直播客户端数量上的限制,做到低成本高性价比的直播...
  18. 看MindSpore加持下,如何「炼出」首个千亿参数中文预训练语言模型?
  19. 我才23岁,我要去追太阳了
  20. 【Vue3】电商网站吸顶功能

热门文章

  1. P8588 『JROI-8』雷雨天特别行动科 java版题解
  2. 企鹅号一万阅读能有多少收益?企鹅号平台补贴怎么获得
  3. 依据数据简单分析,发掘潜在客户
  4. 常见编程错误及解决方法,避免踩雷
  5. uniapp 判断用户是否安装app, 没有则安装
  6. Laravel 6 结合网易/阿里邮箱基本邮件发送功能使用
  7. 微信小程序如何获取高清用户头像
  8. 解决centOS7以上版本防火墙关闭失败的问题
  9. 计算机硬盘模式,硬盘三种模式的含义-电脑自学网
  10. 斑马打印机打印中文乱码的问题