从 v3.0.0 版本开始,PLPlayerKit 全面升级为七牛自研的播放器内核,拥有更优异的性能。
具体接口使用方式详见官网文档
Cocoapods 导入,根据真机或模拟器的需求,配置 Podfile 文件信息即可,无需手动增加依赖
-
默认真机,添加如下配置信息
pod 'PLPlayerKit'
-
若真机 + 模拟,则改用如下配置
pod "PLPlayerKit", :podspec => 'https://raw.githubusercontent.com/pili-engineering/PLPlayerKit/master/PLPlayerKit-Universal.podspec'
手动导入,v3.3.0 之前的版本需要依赖 HappyDNS 库,v3.3.0 起不需依赖。另外还需在 Build Phases 下的 Link Binary With Libraries 依赖部分系统库:
- VideoToolbox.framework
- AudioToolbox.framework
- CoreMedia.framework
- CoreVideo.framework
- CoreAudio.framework
- UIKit.framework
- AVKit.framework
- Foundation.framework
- AVFoundation.framework
- OpenGLES.framework
- QuartzCore.framework
- Accelerate.framework
- CoreGraphics.framework
- CoreTelephony.framework
- MediaPlayer.framework
- libresolv.tbd
- libiconv.tbd
- libbz2.tbd
- libc++.tbd
- libz.tbd
-
PLPlayerStatusOpen
播放组件准备完成,准备开始连接 -
PLPlayerStatusCompleted
播放完成状态 -
DRMKey
私有DRM -
playSpeed
变速播放 -
rtmpVideoTimeStamp
rtmp 流中的视频时间戳信息 -
rtmpAudioTimeStamp
rtmp 流中的音频时间戳信息 -
videoClipFrame
视频剪裁播放 -
loopPlay
是否循环播放 -
回调将要渲染的帧数据
- (void)player:(nonnull PLPlayer *)player willRenderFrame:(nullable CVPixelBufferRef)frame pts:(int64_t)pts sarNumerator:(int)sarNumerator sarDenominator:(int)sarDenominator;
- 回调音频数据
- (nonnull AudioBufferList *)player:(nonnull PLPlayer *)player willAudioRenderBuffer:(nonnull AudioBufferList *)audioBufferList asbd:(AudioStreamBasicDescription)audioStreamDescription pts:(int64_t)pts sampleFormat:(PLPlayerAVSampleFormat)sampleFormat;
- 音视频渲染首帧回调通知
- (void)player:(nonnull PLPlayer *)player firstRender:(PLPlayerFirstRenderType)firstRenderType;
- 视频宽高数据回调通知
- (void)player:(nonnull PLPlayer *)player width:(int)width height:(int)height;
- seekTo 完成的回调通知
- (void)player:(nonnull PLPlayer *)player seekToCompleted:(BOOL)isCompleted;
- 获取缓冲的文件字节数
- (long long)getHttpBufferSize;
- 是否缓存下载
- (void)setBufferingEnabled:(BOOL)bufferingEnabled;
- 获取是否允许缓存下载
- (BOOL)getBufferingEnabled;
- 提前设置 mp4 解析时间
- (void)mp4PreLoadTime:(CMTime)loadTime;
- 提前设置点播从某记忆点开始播放
- (void)preStartPosTime:(CMTime)startTime;
-
PLPlayFormat
播放 URL 类型 -
PLPlayerOptionKeyVideoCacheFolderPath
视频缓存目录 -
PLPlayerOptionKeyVideoPreferFormat
播放 URL 类型 -
PLPlayerOptionKeyVideoCacheExtensionName
视频缓存扩展名 -
PLPlayerOptionKeySDKID
标记 SDK 中的设备ID
PLPlayerErrorHTTPErrorHTTPConnectFailed
连接网络失败
- 开始播放新的 url
- (BOOL)playWithURL:(nullable NSURL *)URL sameSource:(BOOL)sameSource;
- 提前使用 DNS 解析 URL 中的域名
- (void)preDNSHost:(nullable NSURL *)URL;
- 点播已缓冲区域
- (void)player:(nonnull PLPlayer *)player loadedTimeRange:(CMTime)timeRange;
- 解码错误
- (void)player:(nonnull PLPlayer *)player codecError:(nonnull NSError *)error;
-
displayRatioWidth
视频流的显示比例宽 -
displayRatioHeight
视频流的显示比例高 -
avplayer
AVPlayer -
avplayerItem
AVPlayerItem
PLPlayerEnv
类已删除- 在 v3.0.0 之前,仅以静态库 .a 的形式提供
- v3.0.0 ~ v3.2.0 支持静态库 .a 以及动态库 .framework 两种形式提供
- v3.2.1 起,仅以动态库 .framework 形式提供
- 其他详情请见官网文档