ios avplayer 监控播放进度
var timeObserver = avPlayerVC.player?.addPeriodicTimeObserver(forInterval: CMTime.init(value: , timescale: CMTimeScale(NSEC_PER_SEC)), queue: nil, using: {(cmtime) in
let progress = cmtime.seconds / CMTimeGetSeconds(self.avPlayerVC.player!.currentItem!.duration)
if (progress == 1.0) {
//播放百分比为1表示已经播放完毕
print("播放完成")
//处理播放完成之后的操作
clickblock()
}
})
上面需要在设置完成播放源之后执行,之前执行的话检测不到进度
每次切换播放源最后先关闭旧的timeObserver 在重新开启新的timeObserver
在关闭播放页面时需要关闭 timeObserver 否者会闪退
avPlayerVC.player?.removeTimeObserver(timeObserver!)
增加播放时资源状态监控
avPlayerVC.player?.currentItem.addObserver(self,forKeyPath:"status",options: .new,context:nil) override func observeValue(forKeyPath keyPath:String?,of object:Any?,change:[NSKeyValueChangeKey : Any]?,context:UnsafeMulableRawPointer?){ if(keyPath == "status"){
switch self.avPlayerVC.player?.curentItem?.status {
case .readyToPlay:
//准备好播放了
//ios10及以下版本 记住播放位置seek时需要在这里调用否者会闪退
print("可以在这里调用播放")
case .unknown:
//资源不存在
case .failed:
//资源播放异常
}
} } //关闭页面时或者切换资源之前注销
avplayerVC.player?.currentItem?.removeObserver(self,forKeyPath:"status",context:nil)
ios avplayer 监控播放进度的更多相关文章
- iOS 9音频应用播放音频之iOS 9音频播放进度
iOS 9音频应用播放音频之iOS 9音频播放进度 iOS 9音频应用开发播放进度 音频文件在播放后经过了多久以及还有多久才可以播放完毕,想必是用户所关注的问题.为了解决这一问题,在很多的音乐播放器中 ...
- 【转】iOS:AvPlayer设置播放速度不生效的解决办法
现象: 项目有一个需求是实现视频的慢速播放,使用的是封装的AvPlayer,但是设置时发现比如设置rate为0.5,0.1,0.01都是一样的速度,非常疑惑.后来经过查找资料,发现iOS10对这个AP ...
- iOS在线音乐播放SZKAVPlayer(基于AVPlayer的封装)
由于最近闲着没事,想找有关在线音乐播放的demo学习一下,在gitHub跟code4APP上面查找了很多帖子,结果很多在线音乐都是基于AudioStream实现的,我感觉用起来不太方便.后来突然发现, ...
- iOS的影片播放 MediaPlayer 和 AVPlayer(转)
分类: Iphone2013-01-28 16:19 5230人阅读 评论(0) 收藏 举报 在iOS開發上,如果遇到需要播放影片,如開機動畫…,我們很習慣地會使用MediaPlayer來播放影片,因 ...
- iOS的影片播放 MediaPlayer 和 AVPlayer
在iOS開發上,如果遇到需要播放影片,如開機動畫…,我們很習慣地會使用MediaPlayer來播放影片,因為很方便使用,所以就一直使用下去.但是隨著客戶的要求越來越嚴苛,尤其是過場動畫或互動效果上的表 ...
- iOS开发----音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- iOS AVPlayer视频播放器
代码地址如下:http://www.demodashi.com/demo/11168.html 一.运行效果 二.实现过程 ①.创建播放器avPlayer //创建播放器 url = [url str ...
- iOS - 视频循环播放
录制完视频后,我们想在录制视频的预览层上无限循环播放我们的小视频,是不是很炫酷,这时候我们就有三中选择了:1.MPMoviePlayerController2.AVPlayer3.AVAssetRea ...
- iOS - AVPlayer 音视频播放
前言 NS_CLASS_AVAILABLE(10_7, 4_0) @interface AVPlayer : NSObject @available(iOS 4.0, *) public class ...
随机推荐
- SciKit-Learn 加载数据集
章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Learn 可视化数据:主成分分析(P ...
- Glusterfs volume 的三种挂载方式
在上一篇中我们介绍了Glusterfs在CentOS7上的安装,并且提到Glusterfs client端有三种:Native client,NFS,Samba, 今天我们就来一起学习下这三种方式. ...
- jar类库加载顺序
当我们启动一个tomcat的服务的时候,jar包和claess文件加载顺序: 1. $java_home/lib 目录下的java核心api 2. $java_home/lib/ext 目录下的jav ...
- 19 — node 模块化 及 CommonJS规范 — CommonJS 的由来及各组织与 JS 的关系
ECMAScript 对于不同的环境(运行平台),设计结构,理念,使用方式大相径庭. 1,浏览器 :DOM BOM 2,NodeJS :FS,HTTP 内置模块 : 第三方模块 : 内置模块 3, ...
- 大二暑假第一周总结--初次安装配置Hadoop
本次配置主要使用的教程:http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/ 以下是自己在配置中的遇到的一些问题和解决方法,或者提示 一.使用虚 ...
- VUE注册全局组件和局部组件
全局组件 第一步:在components文件夹下建立一个子文件Users.vue <template> <div class="users"> {{msg} ...
- XML--XML Schema Definition(二)
参考 http://www.w3school.com.cn/schema/index.asp XSD 简易元素 XML Schema 可定义 XML 文件的元素. 简易元素指那些只包含文本的元素.它不 ...
- openstack trove redis配置项
trove在mitaka版本更新了一个功能,configuration 具体如下: trove help |grep configuration configuration-attach Attach ...
- chown virtualbox
virtualbox安装 root@cbill-VirtualBox:/# chown --help用法:chown [选项]... [所有者][:[组]] 文件... 或:chown [选项]... ...
- Vue-router(4)之路由跳转
路由传参 案例:现在需要展示一个电影列表页,点击每一部电影,会跳转到该部电影详情页(跳转时携带type和id) 代码实现(未携带type): index.js import Vue from 'vue ...