业界动态
ios播放avi格式 avi格式苹果手机怎么播放手机av「ios播放avi格式 avi格式苹果手机怎么播放」
2025-02-05 17:44


ios播放avi格式 avi格式苹果手机怎么播放_缓存

最近工作内容基本都是围绕视频播放展开的,从AVPlayer到IJKPlayer,期间遇到挺多问题,趟了很多bug,也总结了一些心得。对AVPlayer了解的更多一些,因为涉及点比较多,所以打算做一个系列详尽的写一下这部分内容。希望大家多多支持,有问题的地方欢迎指正。

先来一张思维导图,作为这篇文章的目录索引:

 

AVPlayer.png

首先在iOS平台使用播放视频,可用的选项一般有这四个,他们各自的作用和功能如下:

由此可以看出,如果我们不做直播功能AVPlayer就是一个最优的选择。

另外AVPlayer是一个可以播放任何格式的全功能影音播放器
支持视频格式: WMV,AVI,MKV,RMVB,RM,XVID,MP4,3GP,MPG等。
支持音频格式:MP3,WMA,RM,ACC,OGG,APE,FLAC,FLV等。
所以不得不说苹果亲儿子还是很强大的,是做视频开发的首选。

AVPlayer存在于AVFoundation框架,我们使用时需要导入:

几个播放相关的参数

在创建一个播放器之前我们需要先了解一些播放器相关的类

  • AVPlayer:控制播放器的播放,暂停,播放速度
  • AVURLAsset : AVAsset 的一个子类,使用 URL 进行实例化,实例化对象包换 URL 对应视频资源的所有信息。
  • AVPlayerItem:管理资源对象,提供播放数据源
  • AVPlayerLayer:负责显示视频,如果没有添加该类,只有声音没有画面

我们这片文章就围绕这几个参数展开,光说这些你可能还有点不明白,那我们就围绕一个最简单的播放器做起,一点点扩展功能,在具体讲解这几个参数的作用。

最简单的播放器

根据上面描述,我们知道是播放的必要条件,所以我们可以构建的极简播放器就是:


 


是不是很简单,只有三行代码!
但是它太简单了,仅可以完成音频的播放,连画面都没有。回看上面播放相关类的介绍,是因为缺少;作为一个播放器,我不能只播放一条视频啊,我还想根据需要切换视频,那我们就得把也加上。
加上这两个属性之后的播放器是这样的:


 


现在的播放器稍微完整了一些,我们在自己创建的容器里可以看到画面了!

但是它作为一个视频播放器,还是有很多不能让人满意的地方。例如:没有暂停、快进快退、倍速播放等,另外如果遇到url错误是不是还要有播放失败的提示,还有播放完成的相关提示。
为完成这些,我们需要对和进一步了解一下。

一、AVPlayer的控制

前面讲过该类是控制视频播放行为的,他的使用比较简单。
播放视频:


 


暂停视频:


 


更改速度:


 


还有一下其他的控制,我们可以调转到系统API进行查看

二、AVPlayerItem的控制

AVPlayerItem作为资源管理对象,它控制着视频从创建到销毁的诸多状态。

1、播放状态 status


 


我们使用KVO监测playItem.status,可以获取播放状态的变化


 


在监听回调中:


 


虽然设置完播放配置我们可以直接调用进行播放,但是更稳妥的方法是在回调收到时进行播放

2、视频的时间信息

在AVPlayer中时间的表示有一个专门的结构体CMTime


 


CMTime是以分数的形式表示时间,value表示分子,timescale表示分母,flags是位掩码,表示时间的指定状态。

获取当前播放时间,可以用value/timescale的方式:


 


还有一种利用系统提供的方法,我们用它获取视频总时间:


 


如果我们想要添加一个计时的标签不断更新当前的播放进度,有一个系统的方法:


 


方法名如其意, “添加周期时间观察者” ,参数1 interal 为CMTime 类型的,参数2 queue为串行队列,如果传入NULL就是默认主线程,参数3 为CMTime 的block类型。
简而言之就是,每隔一段时间后执行 block。
比如:我们把interval设置成CMTimeMake(1, 10),在block里面刷新label,就是一秒钟刷新10次。

正常观察播放进度一秒钟一次就行了,所以可以这么写:


 


3、loadedTimeRange 缓存时间

获取视频的缓存情况我们需要监听playerItem的loadedTimeRanges属性


 


在KVO的回调里:


 


4、playbackBufferEmpty

监听我们可以获取当缓存不够,视频加载不出来的情况:


 


在KVO回调里:


 


5、playbackLikelyToKeepUp

和是一对,用于监听缓存足够播放的状态


 


AVURLAsset

播放视频只需一个url就能进行这样太不安全了,别人可以轻易的抓包盗链,为此我们需要为视频链接做一个请求头的认证,这个功能可以借助AVURLAsset完成。

除了可以用URL初始化,还可以用初始化,而不能直接使用,我们看下的一个初始化方法:


 


这个key对应的value是一个布尔值, 用来表明资源是否需要为时长的精确展示,以及随机时间内容的读取进行提前准备。

除了这个苹果官方介绍的功能外,他还可以设置请求头,这个算是隐藏功能了,因为苹果并没有明说这个功能,我是费了很大劲找到的。


 


补充:后来得知这个参数是非公开的API,但是经多人测试项目上线不受影响。

播放相关通知

1、声音类:


 


根据userInfo判断具体状态

2、播放类


 


对于播放完成的通知我们可以这么写:


 


3、系统状态


 


提示:所有通知和KVO的使用我们都要记得在不用时remove掉。

    以上就是本篇文章【ios播放avi格式 avi格式苹果手机怎么播放手机av「ios播放avi格式 avi格式苹果手机怎么播放」】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/34112.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
颜霸邝玲玲,我的泰娱新老婆
看到邝玲玲的第一眼多数人就能明白为什么她可以在中国收获超高人气。中泰混血的她脸上没有泰系常见的钝感,五官流畅、大气、明艳
6G进入标准化元年 通信专家建议重点挖掘垂直行业需求
3月27日至31日,2025中关村论坛年会在京举行。期间,中国工程院院士张平,中关村泛联院院长、中国移动研究院院长黄宇红,中关村
三星手机重装系统攻略:五步轻松恢复出厂设置三星手机系统「三星手机重装系统攻略:五步轻松恢复出厂设置」
简介:在现代智能手机的使用中,重装系统或恢复出厂设置是解决许多软件问题的有效手段。对于三星手机用户,重装系统可以帮助清理
买全球吃全球 感受“舌尖上”的消博会
中国青年报客户端讯(中青校媒记者 田恒慧 中青报·中青网见习记者 戴瑶 记者 任明超)4月13日,第五届中国国际消费品博览会(简
仰天长叹,山东男篮0:2出局:落寞爆冷,克里斯成难掩的心痛短板
CBA季后赛12进8,首战失利的山东男篮,客场挑战北控男篮。对于山东男篮来说,球队已经没有任何的退路,如果再输,那么本赛季就提
新奥好彩免费资料大全-精选解释解析落实酷派5855手机「新奥好彩免费资料大全-精选解释解析落实」
新奥好彩是一款在中国颇受欢迎的彩票游戏,借助现代科技和大数据分析技术,为广大玩家提供了丰富的购彩体验与相应的策略指导。随
这家“药厂”,专治年轻人不开心
中国精酿啤酒市场,正经历舶来品的本土化蜕变。中国酒业协会数据显示,啤酒行业保持高增长,反弹性增长态势明显。《2024—2029年
理想星环OS开源,到底意味着什么?
3月27日,董事长兼CEO李想在2025中关村论坛年会上宣布开源理想汽车自研汽车操作系统——理想星环OS。上述消息在一定范围内引起热
春节送父母vivo Y200t:超高性价比手机只需873元,功能惊艳!vivo性价比最高的手机「春节送父母vivo Y200t:超高性价比手机只需873元,功能惊艳!」
春节来临,买新手机送父母成为不少子女的新年选择。在这个团圆的节日里,送一份陪伴和实用的礼物无疑能带来更多的幸福感。尤其是
爱高集团盘中最低价触及0.181港元,创近一年新低
截至4月16日收盘,(00328.HK)报0.192港元,较上个交易日下跌7.69%,当日盘中最低价触及0.181港元,创近一年新低。资金流向方面