Skip to content

Latest commit

 

History

History
212 lines (123 loc) · 4.43 KB

v3.x.x-UpgradeGuide.md

File metadata and controls

212 lines (123 loc) · 4.43 KB

PLPlayerKit 升级指南

从 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

新增

PLPlayer.h

  • 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;

PLPlayerOption.h

  • PLPlayFormat 播放 URL 类型

  • PLPlayerOptionKeyVideoCacheFolderPath 视频缓存目录

  • PLPlayerOptionKeyVideoPreferFormat 播放 URL 类型

  • PLPlayerOptionKeyVideoCacheExtensionName 视频缓存扩展名

  • PLPlayerOptionKeySDKID 标记 SDK 中的设备ID

PLPlayerError.h

  • PLPlayerErrorHTTPErrorHTTPConnectFailed 连接网络失败

修改

PLPlayer.h

  • 开始播放新的 url
- (BOOL)playWithURL:(nullable NSURL *)URL sameSource:(BOOL)sameSource;
  • 提前使用 DNS 解析 URL 中的域名
- (void)preDNSHost:(nullable NSURL *)URL;
  • 点播已缓冲区域
- (void)player:(nonnull PLPlayer *)player loadedTimeRange:(CMTime)timeRange;

删除

PLPlayer.h

  • 解码错误
- (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 形式提供
  • 其他详情请见官网文档