成都网站建设设计

将想法与焦点和您一起共享

ios开发视频播放器,ios上视频播放器

iOS 视频播放器的实现

最近工作之余, 写了一个视频播放器,输入要播放的视频资源地址,即可实现播放功能。

创新互联公司专注于北票企业网站建设,响应式网站开发,商城网站建设。北票网站建设公司,为北票等地区提供建站服务。全流程按需定制,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

目前功能比较简单,支持锁屏、屏幕旋转等基础功能,后续会继续完善。。。

下面讲解下实现思路:

因 MediaPlayer/MediaPlayer.h 中 MPMoviePlayerController MP_DEPRECATED("Use AVPlayerViewController in AVKit.", ios(2.0, 9.0)) 在iOS9以后已经废弃,为了更好的兼容性,采用了 AVFoundation/AVFoundation.h 为技术实现方案。

框架在此就不讲解了,官网讲的比较清楚,不懂的可以查看官档。 - 戳这里

监听视频资源的加载状态, 根据不同的状态进行相应的操作。

更新视频资源的播放进度。

实现控制视图 QYPlayerControlView 的Delegate。 当控制视图进行了相应操作,事件被传递到该类中进行统一处理。

该类中还有对操作视图 显示/隐藏 的方法。

后续调整视频亮度、音量、进度等手势都需添加在该分类中,便于统一管理。

主要存放时间转换的分类 NSString+Custom 、常用宏 QYPlayerDefine 等工具类。

1). BaseViewController 中实现了控制屏幕旋转的系统方法,实现的控制器要继承自 BaseViewController 。

2). 在子控制器中实现如下方法。

此时屏幕旋转功能已经添加成功!

以上便是整个播放器的源码解析,具体的细节请查看源码。

源码放在GitHub上了,想查看的小伙伴可以 -戳这里。

千里之行,始于足下。

iOS - 自定义视频播放器 -- (1)

如何将视频添加上自定义的渲染效果,并显示?

1、解码视频

2、获取视频帧

3、渲染视频帧

4、显示渲染后的视频帧

5、编码视频帧,生成新的视频

AVPlayer:驱动播放用例的中心阶层,是用于管理媒体资产的回放和定时的控制器对象

这里AVPlayer,我制作简单的播放,暂停,seek。并且添加上AVPlayerItemVideoOutput做一个视频帧输出的工作。

创建一个播放器

AVPlayerItemVideoOutput 获取视频帧

主要的核心工具是 AVPlayerItemVideoOutput ,这对象相当于一个视频解码工具,对它进行属性设置,可以获取视频中某一时刻的想要数据的 CVPixelBuffer 视频帧。

通过获取到的CVPixelBuffer,进行OPenGL自定义渲染显示。

外部需要开启一个定时器,来实时的进行画面的刷新。定时器时间可以根据视频的FPS来控制。

至此如何获取视频帧就可以了。

如何获取视频帧,这里都比较简单,都是通过系统层去实现功能。

主要注意的是:

1、AVPlayerItemVideoOutput的获取的数据格式定义,根据 需求设置RGBA还是YUV420的数据 。

2、AVPlayer使用seek时候,使用 精度比较高的方法 ,提高在seek时候的画面流畅度

3、获取的CVPixelBuffer 在Swift语言,不需要手动释放 。在OC上需要调用 CVPixelBufferRelease() 手动释放

Git Code:AVPlayer-Render

iOS视频播放器(Swift)

iOS上除了一些第三方的播放器之外,我们一般常用的播放方式有使用:

一般简单的播放url可以使用网页播放的模式,有很多主流app的视频打开都是用的这种。不需要UI自定义的时候我们选择AVPlayerViewController,比较方便快捷。自定义需求较多时最好选用AVPlayer。

功能最全、自定义最高的播放器,也是使用最多得。使用起来较为复杂些。需导入AVKit控件

AVPlayer功能比较多,另外写了一篇文章:

AVPlayer播放器

只是让视频播放起来,没有暂停、停止、快进等等功能。

适用于简单的播放,不需要过多自定义的东西,使用比较简单,有两种方式,需要引入AVKit框架

(1)添加view

可以设置播放器的大小

(2)作为视图控制器弹窗

使用起来类似AVPlayerViewController的第一种方式。需要引入MediaPlayer框架(iOS9后被抛弃,使用AVPlayerViewController即可)

通知来进行一些操作的监听

使用起来类似AVPlayerViewController的第二种方式。需要引入MediaPlayer框架(iOS9后被抛弃,使用AVPlayerViewController即可)

swift视频播放器使用


文章标题:ios开发视频播放器,ios上视频播放器
分享链接:http://chengdu.cdxwcx.cn/article/dsdpogo.html