MPMoviePlayerController 与AVAudioPlayer有点类似,前者播放视频,后者播放音频,不过也有很大不同,MPMoviePlayerController 可以直接通过远程URL初始化,而AVAudioPlayer则不可以。不过大体上用起来感觉差不多。废话少说进入体验。

格式支持:MOV、MP4、M4V、与3GP等格式,还支持多种音频格式。
首先你得引入 MediaPlayer.framework.然后在使用到MPMoviePlayerController 的文件中导入相应的头文件。
一、创建
MPMoviePlayerController 类通过一个NSURL来初始化,这个URL可以使本地的,也可以是远程的。初始化需要通过 initWithContentURL 方法来实现:

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

或者


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

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


  1. moviePlayer.moviewControlMode = MPMovieControlModeDefault;

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


  1. moviePlayer.scallingMode = MPMovieScallingModeAspectFit;

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


  1. moviePlayer.backgroundColor = [UIColor redColor];

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

  1. [ moviePlayer play ];

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

  1. [ moviePlayer stop ];

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

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

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

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

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

感谢大神分享

MPMoviePlayerController 电影播放器—备用相关推荐

  1. MPMoviePlayerController 电影播放器

    http://blog.csdn.net/iukey/article/details/7311126 转载于:https://www.cnblogs.com/DamonTang/archive/201 ...

  2. (电影播放器)MPMoviePlayerController

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

  3. IOS电影播放器—MPMoviePlayerController

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

  4. iOS 之电影播放器

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

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

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

  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. android电影播放器,安卓视频播放器哪个好 五款主流视频播放器对比

    如今手机的流行趋势是屏幕越来越大,从3.5寸到3.7寸再到现在不少主流的安卓手机所采用的4.3寸屏幕,用手机来看电影已经是一项在我们日常生活中使用频率非常高的功能.而手机处理器性能的进化也让我们可以轻 ...

最新文章

  1. 通过分离dataSource 让我们的code具有更高的复用性.
  2. 透视WPF 应用程序的利器
  3. Educational Codeforces Round 96 (Rated for Div. 2) C. Numbers on Whiteboard///思维
  4. 链式调用方法的实现原理和方法
  5. html中的空格表示
  6. amap vueamap 与_vue中使用vue-amap(高德地图)
  7. 第二章 oracle 10g体系结构及安全管理
  8. 使用高德地图加载kml文件
  9. dajngo 初始化数据报错 django.db.utils.DataError: value too long for type character varying(32)
  10. 解决ios微信公众号h5页面新增底部前进后退导航栏产生的布局问题
  11. java造成capturing lambda后需要注意的事情
  12. 神经网络预测鸢尾花的种类
  13. 个人千元奖励!华秋PCB多层板设计挑战赛等您参与
  14. 2019年5月25更新——“运动世界校园”软件破解
  15. 值得重视的网络安全问题
  16. 解析 通证经济的分类及用途
  17. IM云服务领域,融云因何得以登上浪潮之巅?
  18. Linux 命令小记
  19. 新唐NUC980使用记录:U-Boot Linux 编译与烧录(基于SPI NAND)
  20. ELK环境搭建+入门使用

热门文章

  1. 龙的战争 Dragon ‘s War
  2. The Hidden Agenda User Simulation Model翻译
  3. 移动通信网络规划:双工技术
  4. echarts 不刷新页面更新数据
  5. 加拿大玩具巨头斯平玛斯特在华确权维权,爆丸专利获赔超千万,汪汪队品牌获刑事保护...
  6. Typora+smms+picGo(app) 图床使用办法
  7. 看脸的世界:牙齿整齐找工作更容易
  8. 什么是业务流程重组?
  9. Android开发规范[Java+android]
  10. java使用jacob给word添加水印