文档章节

iPhone开发笔记(1)MPMoviePlayerController的用法和播放时只有声音没有图像的解决办法

CEOIOS
 CEOIOS
发布于 2013/11/30 17:54
字数 705
阅读 6055
收藏 4

 MPMoviePlayerController类是一个功能非常强大的类,它可以播放MOV、MP4、MPV、M4V、3GP、MP3、AIFF和M4A,定义起来也非常简单。下面说一下MPMoviePlayerController的简单用法和我使用时出现的问题。

    我用的是SDK4.1,现在应该不会有还在用sdk3的骨灰级开发者了吧。

[c-sharp]  view plain copy
  1. MPMoviePlayerController *moviePlayer;moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:要播放文件的URL];moviePlayer.scalingMode = MPMovieScalingModeAspectFill;[moviePlayer.view setFrame:CGRectMake(30, 210, 250, 350)];[moviePlayer.view setBackgroundColor:[UIColor clearColor]];[self.view addSubview:moviePlayer.view];[moviePlayer play];  


说明:

1、scalingMode属性决定的是添加的视频播放器的填充方式。

2、请一定要调用moviePlayer.view的setFrame方法,要不然你添加的播放器就会出现只播放声音而没有图像的情况。

3、在设置好moviePlayer的各种属性后,最后不要忘了调用当前view的addSubview方法把moviePlayer.view添加为当前视图的子视图。

4、如果播放的文件是音频文件而不是视频文件,那么播放的时候只有一个播放栏。

可以使用下列样式:
MPMovieControlModeDefault            显示播放/暂停、音量和时间控制
MPMovieControlModeVolumeOnly         只显示音量控制
MPMovieControlModeHidden             没有控制器

5屏幕宽高比例

你可以使用下列宽高比值:
MPMovieScallingModeNone            不做任何缩放
MPMovieScallingModeAspectFit       适应屏幕大小,保持宽高比
MPMovieScallingModeAspectFill      适应屏幕大小,保持宽高比,可裁剪
MPMovieScallingModeFill            充满屏幕,不保持宽高比

----------------------------------------------------------http://blog.sina.com.cn/iostang

通知
你的程序可以配置电影播放器在何时候发送通知,包括结束加载内容、技术播放、改变宽高比等。电影播放器会将事件发送到 Cocoa 的通知中心,你可以对其进行配置,指定将这些事件转发到你的应用程序的一个对象。要接收这些通知,需要使用 NSNotificationCenter 类,为电影播放器添加一个观察者(observer):
[html]  view plain copy print ?
  1. NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter];  
  2. [ notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:moviePlayer ];  
通知会发到你指定的委托类和目标方法。通知参数让你可以知道是哪个事件触发了委托方法:
[html]  view plain copy print ?
  1. -(void)moviePlayerPreloadDidFinish:(NSNotification*)notification{  
  2.     //添加你的处理代码  
  3. }   
你会观察到以下通知:
MPMoviePlayerContentPreloadDidFinishNotification 
当电影播放器结束对内容的预加载后发出。因为内容可以在仅加载了一部分的情况下播放,所以这个通知可能在已经播放后才发出。
MPMoviePlayerScallingModeDidChangedNotification 
当用户改变了电影的缩放模式后发出。用户可以点触缩放图标,在全屏播放和窗口播放之间切换。
MPMoviePlayerPlaybackDidFinishNotification 
当电影播放完毕或者用户按下了Done按钮后发出。
更多 2


© 著作权归作者所有

CEOIOS
粉丝 8
博文 42
码字总数 24961
作品 0
深圳
程序员
私信 提问
MPMoviePlayerController的用法

MPMoviePlayerController的一些用法 delay框架手机 1.计算使用MPMoviePlayerController播放的视频的长度有两种方法: 第一种方法 NSDictionary opts = [NSDictionary dictionaryWithObject:[...

hanbing94
2015/08/31
413
0
MPMoviePlayerController导致statusBar消失,导致内存泄露leak

1、MPMoviePlayerController使statusBar消失 同事写项目时,运行程序总导致statusBar状态条消失,然后就是界面会上移20个像素,导致最下面空白界面,找原因一直不知道什么导致的。然后请教老...

长平狐
2013/12/25
103
0
iPhone 应用开发:音频播放

在 iPhone 应用或者是游戏的开发过程中,对声音的支持是必不可少的。在我做过的几个应用中,每个都涉及到音效,所以在这里做个简单的归纳,很多都是引用自《iPhone Application Programming ...

长平狐
2012/08/13
102
0
zymedia的在使用中碰到的问题

记笔记,免忘记!最近用到了视频插件zyMedia。这个插件的简介地址:https://github.com/ireaderlab/zyMedia 问题一: 首先视频的上方显示的标题,实例是这样写的data-config='{"mediaTitle":...

zilvzsy
2018/05/12
0
0
Hilo开发小游戏踩坑笔记(1)

第一次开发小游戏,用的是Hilo框架。由于项目开发时间比较紧张,对游戏和CANVAS都没有了解过。代码虽然写的很烂,但是还是记录下踩过的坑吧!本文为碎碎念模式,并不深入,写错的地方希望多多...

yukiyang
2018/09/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
22分钟前
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
32分钟前
8
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
43分钟前
6
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
45分钟前
6
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
46分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部