全部产品

播放器3.x.x版本升级到4.5.0版本指南

更新时间:2020-11-30 17:52

本文为您介绍了播放器3.x.x版本SDK升级到播放器4.5.0版本SDK的相关说明、注意事项以及操作步骤。

统一播放器

播放器3.x.x版本的SDK,提供了基础播放器和高级播放器:

  • AlivcMediaPlayer

  • AliyunVodPlayer

分别用于URL播放与VID视频播放。在播放器4.5.0版本的SDK中,不再区分,统一为AliPlayer去播放URL视频和VID视频。

依赖Framework的不同

  • 播放器3.x.x版本SDK的依赖framework:

    • AliyunPlayerSDK.framework

    • AliyunVodPlayerSDK.framework

    • AliThirdparty.framework

    • 以及一个bundle:AliyunLanguageSource.bundle

  • 播放器4.5.0版本SDK依赖的framework变为:

    • AliyunPlayer.framework

    • AliyunMediaDownloader.framework

    • AlivcConan.framework和alivcffmpeg.framework

类名与方法变化

播放器4.5.0版本SDK,修改了部分类名,增加了新的功能和事件回调。同时,也移除了播放器3.x.x版本SDK中部分接口。

升级实践

以播放器3.4.10版本SDK升级到播放器4.5.0版本SDK为例。

说明

播放器3.x.x版本SDK升级到播放器4.x.x版SDK本基本一致,以高级播放器AliyunVodPlayer升级为例。

  1. 集成framework

    从xcode的工程设置Embedded Binaries删除原来的几个播放器的framework,然后添加新的播放器的framework进去,具体方式请参见集成文档。

  2. 修改代码

    在进行集成framework后,编译工程就会出错。需要使用播放器4.5.0版本SDK中的类和方法。这块变化比较大,类名和方法名都发生了改变。下面是几个需要重点修改的地方:

    1. 修改引用的头文件:更改framework的头文件引用,示例如下:

      #import <AliyunVodPlayerSDK/AliyunVodPlayerSDK.h>
      更改为
      #import <AliyunPlayer/AliyunPlayer.h>

    2. 更改播放器类名:播放器3.4.10版本SDK创建的播放器是AliyunVodPlayer的对象,新播放器创建的对象为AliPlayer,示例如下:

      self.player = [[AliyunVodPlayer alloc] init];
      更改为
      self.player = [[AliPlayer alloc] init];

    3. 修改delegate回调:播放器3.4.10版本SDK,delegate是AliyunVodPlayerDelegate类。播放器4.5.0版本SDK,delegate是AVPDelegate类,部分回调的基本意义不变,但是名字发生了改变。以onEventCallback为例,示例如下:

      - (void)vodPlayer:(AliyunVodPlayer *)vodPlayer onEventCallback:(AliyunVodPlayerEvent)event ;
      更改为
      -(void)onPlayerEvent:(AliPlayer*)player eventType:(AVPEventType)eventType;
      说明

      事件回调的事件类型基本一致,部分有些许区别,具体请参见接口说明

    4. 监听事件变化情况

      播放器3.x.x版本SDK的delegate的回调变化

      事件名

      功能

      变化情况

      onEventCallback

      播放事件

      onPlayerEvent

      playBackErrorModel

      播放错误

      onError

      willSwitchToQuality

      清晰度将要改变

      删除

      didSwitchToQuality

      清晰度切换成功

      onTrackChanged

      failSwitchToQuality

      清晰度切换失败

      删除

      onCircleStartWithVodPlayer

      循环播放

      onPlayerEvent中的AVPEventLoopingStart

      onTimeExpiredErrorWithVodPlayer

      超时错误

      删除

      vodPlayerPlaybackAddressExpiredWithVideoId

      地址将要过期

      删除

      播放器4.5.0版本SDK新增加的delegate。

      事件名

      功能

      onPlayerEvent:eventWithString

      一些播放信息事件

      onVideoSizeChanged

      视频分辨率发生改变

      onCurrentPositionUpdate

      播放进度

      onBufferedPositionUpdate

      缓存进度

      onLoadingProgress

      缓冲进度

      onTrackReady

      清晰度准备完成

      onSubtitleShow

      字幕显示

      onSubtitleHide

      字幕隐藏

      onGetThumbnailSuc

      获取缩略图成功

      onGetThumbnailFailed

      获取缩略图失败

      onPlayerStatusChanged

      播放状态改变

      onCaptureScreen

      截屏通知

  3. 修改播放源的设置

    播放器3.4.10版本SDK通过prepareWithVid方法传值并直接prepare。播放器4.5.0版本SDK改为setSource方法设置,并需要调用prepare来准备。示例如下:

    /**
     @brief 使用url方式来播放视频
     @param source AVPUrlSource的输入类型
     @see AVPUrlSource
     */
    - (void)setUrlSource:(AVPUrlSource*)source;
    /**
     @brief 用vid和sts来播放视频
     @param source AVPVidStsSource的输入类型
     @see AVPVidStsSource
     */
    - (void)setStsSource:(AVPVidStsSource*)source;
    /**
     @brief 用vid和MPS信息来播放视频
     @param source AVPVidMpsSource的输入类型
     @see AVPVidMpsSource
     */
    - (void)setMpsSource:(AVPVidMpsSource*)source;
    /**
     @brief 使用vid+playauth方式播放
     @param source AVPVidAuthSource的输入类型
     @see AVPVidAuthSource
     */
    - (void)setAuthSource:(AVPVidAuthSource*)source;
    说明

    直播时的移植设置,4.5.0新增类AVPLiveTimeShift来播放,将以前的一些接口移植到了这个类中,使用方式同3.x.x版本一样。

  4. 播放音视频信息获取

    播放器preparedone之后,需要获取vid的一些基本信息,播放器3.x.x版本SDK需要AliyunVodPlayerVideo来获取,播放器4.5.0版本SDK,示例如下:

    if (event == AliyunVodPlayerEventPrepareDone) {
            AliyunVodPlayerVideo *videoModel = [self.vodPlayer getAliyunMediaInfo];
    }
    变为
    case AVPEventPrepareDone: 
        AVPTrackInfo *videoInfo = [self.player getCurrentTrack:AVPTRACK_TYPE_VIDEO];
    说明

    TrackInfo包括音视频的码率,播放地址、vid返回的一些信息,请参见接口说明AVPTrackInfo的描述。

  5. 播放参数设置

    播放器3.x.x版本SDK的一些播放参数设置,是直接通过接口进行设置,而播放器4.5.0版本SDK里面则是封装到了一个config里面,通过GetConfig可以获取到播放器当前的参数配置,通过SetConfig可以修改播放器的一些参数。

    设置

    功能

    变化情况

    referer

    referer配置

    AVPConfig中referer

    timeout

    超时

    AVPConfig中networkTimeout

    dropBufferDuration

    丢帧阈值

    AVPConfig中maxDelayTime

    说明

    播放器4.5.0版本SDK中新增了很多config,方便对播放器进行多方面的控制,请参见接口说明

  6. 播放控制接口

    播放器4.5.0版本SDK,控制接口基本上没有太多的变化,比如pause、start、stop等。

    新增了两个接口:

    • reload:在网络出现问题的时候可以调用reload进行重新网络请求。

    • redraw:在窗口发生变化的时可以调用redraw来强制刷新视图。

3.x.x版本相关文档

基础播放器

高级播放器

基础播放器接口说明

高级播放器接口说明