文档

iOS端集成

更新时间:

本文介绍iOS端集成微短剧项目的操作步骤。

源码说明

源码下载

下载地址请参见GitHub开源项目:AUI Kits微短剧场景(iOS端)

源码结构

├── AUIShortEpisode   // AUI短剧组件
│   ├── Resources                         // 资源文件
│   ├── Source                            // 源代码
│   ├── AUIShortEpisode.podspec           // 本地pod文件
│   ├── README.md   // Readme   
|—— AUIFoundation     // AUI基础组件([Github地址](https://github.com/aliyunvideo/MONE_demo_opensource_iOS/tree/main/AUIBaseKits/AUIFoundation))

环境要求

类别

要求

开发环境

Xcode 12.0及以上版本,推荐使用最新正式版本。

系统版本

iOS 10.0及以上版本的真机。

CocoaPods

CocoaPods 1.9.3及以上版本。

前提条件

您已获取音视频终端SDK的播放器的License授权和License Key。获取方法,请参见申请License

快速集成

  1. 接入已授权播放器的音视频终端SDK License。

    具体操作,请参见iOS端接入License

  2. 将AUIShortEpisode和AUIFoundation工程拷贝到您的项目工程中,与Podfile处于同一层级。

  3. 修改您项目工程的Podfile文件。

    请根据您自身业务需求进行集成:

    #需要iOS 10.0及以上才能支持
    platform :ios, '10.0'
    
    target '你的App target' do
     # 根据自己的业务场景,集成合适的音视频终端SDK,支持:AliPlayerSDK_iOS、AliVCSDK_Premium、AliVCSDK_Standard、AliVCSDK_UGC等
     pod 'AliPlayerSDK_iOS'
     
     # 基础UI组件
     pod 'AUIFoundation/All', :path => "./AUIFoundation/"
     
     # 短剧UI组件,如果终端SDK使用的是AliVCSDK_Premium,需要AliPlayerSDK_iOS替换为AliVCSDK_Premium
     pod 'AUIShortEpisode/AliPlayerSDK_iOS', :path => "./AUIShortEpisode/"
    end
  1. 执行pod install进行安装。

    安装成功后,您可以在工程的Pods中找到AUIShortEpisode和AUIFoundation目录。

配置基础功能

  1. 设置微短剧入口页面。

    在当前页面中打开短剧主界面AUIShortEpisodeViewController

    #import "AUIShortEpisodeViewController.h"
    
    AUIShortEpisodeViewController *vc = [[AUIShortEpisodeViewController alloc] init];
    [self.navigationController pushViewController:vc animated:YES];
  2. 加载剧集数据。

    本组件默认使用了内置的剧集数据进行演示,在您集成组件后需要修改此部分的逻辑,对接到您的服务端,通过服务端提供的接口来获取剧集数据。设置方法如下:

    1. 在源码中找到AUIShortEpisodeDataManager类,进入fetchData:completed:方法,修改为通过您的服务端接口获取剧集数据。

      //  AUIShortEpisodeData.m
      
      @implementation AUIShortEpisodeDataManager
      
      + (void)fetchData:(NSString *)eid completed:(void (^)(AUIShortEpisodeData *, NSError *))completed {
          // TODO: 请求服务端返回短剧数据,由您的服务端提供接口,并在这里请求接口
          // TODO:接口成功返回的数据还需转换为AUIShortEpisodeData,最终通过completed参数回调给业务
          
      }
    2. 从服务端获取到的数据,需要根据数据协议转换为剧集模型。剧集模型字段说明如下:

      • 短剧剧集:AUIShortEpisodeData

        字段

        含义

        id

        短剧剧集唯一ID。

        title

        短剧剧集名称。

        list

        短剧剧集视频列表。

      • 单集视频:AUIVideoInfo

        字段

        含义

        videoId

        视频ID,是视频的唯一标识。

        url

        播放源URL。

        duration

        时长。

        coverUrl

        封面。

        author

        作者。

        title

        标题。

        videoPlayCount

        播放次数。

        isLiked

        是否被点赞。

        likeCount

        点赞数。

        commentCount

        评论数。

        shareCount

        分享数。

  3. 开发视频互动功能。

    源码中,点赞、评论、分享仅在视频上透出入口,点击后具体的操作需要由您自行实现,可以通过AUIShortEpisodeViewController类进行对接和设置。

    //  AUIShortEpisodeViewController.m
    
        cell.onLikeBtnClickBlock = ^(AUIShortEpisodePlayCell * _Nonnull cell, AVBaseButton *likeBtn) {
            likeBtn.selected = !likeBtn.selected;
            cell.videoInfo.isLiked = likeBtn.selected;
            cell.videoInfo.likeCount = likeBtn.selected ? (cell.videoInfo.likeCount + 1) : (cell.videoInfo.likeCount - 1);
            [cell refreshUI];
            // TODO: 发送点赞请求给服务端,需要自行实现
        };
        cell.onCommentBtnClickBlock = ^(AUIShortEpisodePlayCell * _Nonnull cell, AVBaseButton *commentBtn) {
            // TODO: 打开评论页面,需要自行实现
        };
        cell.onShareBtnClickBlock = ^(AUIShortEpisodePlayCell * _Nonnull cell, AVBaseButton *shareBtn) {
            // TODO: 打开分享页面,需要自行实现
        };

核心功能介绍

本组件功能通过阿里云播放器SDK的AliListPlayer实现。它利用本地缓存、智能预加载和智能预渲染等核心能力,显著降低了播放延迟并提高了播放稳定性,从而提升用户观看体验。

本地缓存

本地缓存可以提高微短剧视频播放的加载速度和稳定性,使用户在网络不稳定或者断网的情况下依然能够流畅观看视频,提升用户的观看体验。具体配置方法,请参见本地缓存

智能预加载

智能预加载可以提前加载视频数据,使视频播放更加流畅,减少加载等待时间,提升用户的观看体验。具体配置方法,请参见预加载

智能预渲染

智能预渲染可以减少视频播放的启动延迟,让用户更快地看到画面,提升视频播放的加载速度和观看体验。具体配置方法,请参见智能预渲染

HTTPDNS

HTTPDNS可以提供更快速和稳定的DNS解析服务,通过替换传统DNS解析,可以减少DNS解析时间,提高视频播放的加载速度和稳定性,从而提升用户的观看体验。

[AliPlayerGlobalSettings enableHttpDns:YES];
AVPConfig *config = [self.listPlayer getConfig];
config.enableHttpDns = -1;
[self.listPlayer setConfig:config];

视频加密

微短剧场景的视频通常为1~3分钟的MP4格式视频,音视频终端SDK和播放器SDK从6.8.0版本开始支持MP4私有加密播放能力,为微短剧场景的视频提供安全保障支撑。更多信息,请参见阿里云视频加密(私有加密)

经私有加密的MP4格式视频,需满足以下条件,才可正常播放:

  • 经私有加密的MP4视频传给播放器播放时,业务侧(App侧)需要为视频URL追加etavirp_nuyila=1,例如:原视频URL为https://example.aliyundoc.com/test.mp4,则需要传给播放器播放的视频URL为https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

  • App的License对应的uid与产生私有加密MP4的uid是一致的。

如何校验私有加密视频是否正确,以私有加密的视频URL为例说明如下:

  • meta信息里面应带有AliyunPrivateKeyUri的tag。

  • ffplay不能直接播放。

  • 本页导读 (1)