博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MPMoviePlayerController的一些用法
阅读量:4115 次
发布时间:2019-05-25

本文共 1723 字,大约阅读时间需要 5 分钟。

整理转自:http://blog.csdn.net/zzfsuiye/article/details/7824692

1.计算使用MPMoviePlayerController播放的视频的长度有两种方法:

第一种方法

NSDictionary *opts = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO]                                           forKey:AVURLAssetPreferPreciseDurationAndTimingKey]; 

AVURLAsset *urlAsset = [AVURLAssetURLAssetWithURL:videoUrloptions:opts]; 

NSInteger totalSecond = urlAsset.duration.value / urlAsset.duration.timescale; 

使用上述代码需要插入AVFoundation框架。播过我用这种方法计算视频长度时,会延迟其后代码的执行,不知道什么原因。

第二种方法

使用MPMoviePlayerController的duration属性,当MPMoviePlayerController的duration未知时默认为0.0,如果duration确定,会发送通知,接着duration的值将会更新为播放视频的长度,单位是秒。

2.视频什么时候开始播放

当视频开始播放时会发送MPMediaPlaybackIsPreparedToPlayDidChangeNotification,所以你只需要在注册

MPMediaPlaybackIsPreparedToPlayDidChangeNotification通知,当接收到此通知说明视频开始播放。

3.自定义播放器视图时怎么自定义声音控件

使用MPVolumeView控制系统的声音大小。通过改变MPVolumeView slider的值可以改变系统的声音,同时通过调节系统的声音按钮,slider的值也会跟着改变。

volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(310, 180, 100, 20)];

volumeView.showsVolumeSlider = YES;

[backView addSubview:volumeView];

[volumeView release];

4.通过presentModalViewController调出MPMoviePlayer所在控制器,当通过dismissModalViewController移除控制器时,手机的状态栏可能会消失。解决办法:在dismissModalViewController调用函数

movieplayer.controlStyle = MPMovieControlStyleFullScreen;

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay * NSEC_PER_SEC), dispatch_get_current_queue(), ^{

        [UIApplication sharedApplication].statusBarHidden = NO;

    });

5. 

如何向MPMovieplayerController的控制栏添加新的控件

 

主要就是进行遍历,然后通过KVO的方式进行修改即可。

可以对它的moviePlayer.view遍历subviews,遍历到第三级有个 MPFullscreenOverlay,这个就是当你点击播放界面时的出现的悬浮层,遍历到第四级有一个subview就是 MPTransparentControls这个类,这个就是快退/播放/快进的那个面板,你可以对这个view进行addSubview。
至于判断这个面板的显隐,可以对MPFullscreenOverlay的alpha属性用KVO进行跟踪。

MPMoviePlayerController的view上直接添加这些控件即可。

你可能感兴趣的文章
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
tomcat 使用心得(问题)-eclipse 启动tomcat 后 浏览器访问404 --eclipse复制工程显示原来的工程名
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>
Tomcat启动错误,端口占用
查看>>
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>
VUE SPA 单页面应用 微信oauth网页授权
查看>>
phpstorm 集成 xdebug 进行调试
查看>>
npm和node升级的正确方式
查看>>
laravel事务
查看>>
springcloud 连续请求 500
查看>>
vue复用新增和编辑表单
查看>>
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>