运行播放器Demo源码

Demo源码提供了播放器的常用功能示例,集成播放器SDK前,可以先运行Demo源码以了解和体验播放器SDK的功能。您也可以不单独集成SDK,直接集成完整的Demo源码来直接使用播放器SDK,或根据需要集成Demo源码中的部分模块来使用。

体验Demo

体验Demo提供了完整的产品级的交互UI和业务源码,包含短视频、播放器和上传等SDK。您可以扫描二维码下载Demo App体验阿里云播放器相关功能。二维码地址请参见Demo体验。同时阿里云也免费提供Android播放器SDK Demo源码。iOS端播放器SDK Demo源码中内置了UI,以下分别介绍使用和不使用内置的UI来集成播放器Demo源码的场景及操作步骤。

场景

说明

运行完整Demo(含内置UI)

适用于需要使用内置UI,且想要使用Demo源码中提供的所有功能。

此场景下无需单独集成SDK,直接导入完整的Demo源码并运行即可。

集成Demo模块(含内置UI)

适用于需要使用内置UI,但只想使用Demo源码中的部分功能。

此场景下无需单独集成SDK,只需选择性的导入Demo源码中的功能模块运行即可。

集成Demo(不含内置UI)

适用于不需要内置UI(自定义UI或不使用UI),又想省去自己开发的麻烦,直接使用Demo中封装好的功能。

此场景下需要先集成SDK,再集成Demo中的相关文件。

环境要求

类别

说明

系统版本

支持iOS 8.0及以上版本。

手机芯片

架构要求:

  • armv7。

  • arm64。

开发工具

推荐使用Xcode,本文操作步骤基于Xcode开发。下载地址:Xcode

前提条件

下载iOS端播放器SDK包(包含了播放器SDK及Demo源码),推荐下载使用最新版本。下载地址请参见播放器SDK

解压后的目录结构如下:

文件名

作用

demo

播放器的Demo源码。Demo源码的目录结构参见表 2。

doc

播放器API文档。

sdk

播放器SDK的framework库。

ReleaseNote

版本说明。

demo目录结构如下:

模块名

模块作用

AlivcBasicVideo

播放器基础核心模块,对应播放器SDK Api调用逻辑。

说明

此模块必须导入,播放器SDK核心库。

AlivcPlayVideo

播放相关模块,对应播放器调用的示例代码。

说明

此模块基于AlivcBasicVideo,使用此模块必须导入AlivcBasicVideo。

AlivcCommon

阿里云项目公共模块,包括一些工具类。

说明

此模块必须导入,无论导入Demo中的哪一个和播放器相关的模块,都需要导入此模块。

AliyunVideoClient_Entrance.xcodeproj

Xcode组织工程项目的文件。

AliyunVideoClient_Entrance.xcworkspace

阿里云项目工程总入口,需要打开xcworkspace文件使用Xcode编译运行。

Podfile

使用cocoapods管理第三方库文件。

Podfile.lock

使用cocoapods生成的下载的第三方库版本相关信息。

Pods

使用cocoapods生成的下载的第三方库文件目录。

运行完整Demo(含内置UI)

通过使用Xcode运行完整的播放器SDK Demo包,可不再单独集成SDK,直接开始使用包含了内置UI的播放器功能。

在demo目录下选择AliyunVideoClient_Entrance.xcworkspace,双击使用Xcode打开工程。

image.png

使用Xcode打开工程后,选中红框中AliyunVideoClient_Entrance,然后将bundle identifier替换为自己的。

image.png

替换bundle id的同时,如果下载的播放器Demo指向的播放器SDK版本是5.5.3.0以上的,则需要在Info中增加对license的支持。申请配置license,将获取的licenseKey填入Info中的AlivcLicenseKey条目的Value中;将license.crt文件放到工程如红框目录下。

image.png

集成Demo模块(含内置UI)

通过选择导入播放器SDK Demo源码中的部分模块,选择性的使用封装好的包含内置UI播放器的部分功能。

  1. AlivcBasicVideoAlivcPlayVideoAlivcCommon文件夹整体拷贝到自己建的代码工程中去。

    可以在拷贝上述三个文件夹的时候,分别将文件夹中的Example、LiCENSE、README.md文件删除,只保留podspc和同名子文件夹内容,减少工程包体大小。

image.png

  1. 在上述三个文件夹同级目录下创建Podfile文件,实现组件化工程。按照下图红框的形式pod本地podspec文件。

    image.png

  2. 执行pod install后,会自动生成pod相关内容,里面包含有集成到工程的AlivcBasicVideoAlivcPlayVideoAlivcCommon文件夹内容,以及播放器SDK pod集成文件。

    image.png

  3. 根据体验Demo编译运行界面,含有内置UI功能代码入口在AlivcPlayVideo组件下AlivcPlayVideo/Classes文件夹下内容,分别是:

    UI功能

    UI功能代码文件夹入口

    UI功能代码入口ViewController

    视频播放

    PlayConfig

    AlivcVideoPlayConfigViewController

    播放列表

    PlayList

    SimplePlayerViewController

    直播时移

    TimeShift

    AlivcVideoPlayTimeShiftViewController

    在工程首页ViewController中执行跳转到相应的UI功能代码入口ViewController中。如视频播放界面跳转逻辑如下:

    #import "AlivcVideoPlayConfigViewController.h"
    
    // 跳转逻辑
    AlivcVideoPlayConfigViewController *vc = [[AlivcVideoPlayConfigViewController alloc] init];
    [self.navigationController pushViewController:vc animated:YES];
    
    说明

    如果不需要全部内置UI功能,可以自行选择删除相应的AlivcPlayVideo组件的UI功能代码文件夹入口,以及在AlivcBasicVideo组件下的AlivcBasicVideo/Assets文件夹下的对应资源文件。

集成Demo(不含内置UI)

播放器Demo中包含许多内置UI,如果您不需要内置UI(自定义UI或不使用UI),又想省去自己开发的麻烦,直接使用Demo中封装好的功能,则可以通过以下步骤实现。

  1. 集成播放器SDK。

    可以直接复用AlivcBasicVideo组件下的AlivcBasicVideo.podspec,pod集成播放器SDK。

    image.png

    也可以自行在工程Podfile文件中pod集成,或是工程合适的地方本地集成,请参见集成iOS端播放器SDK

  2. 集成Demo中部分代码。

    可以使用AlivcBasicVideo组件文件夹下AlivcBasicVideo/Classes/AlivcBasicVideo路径下的文件选择性集成到工程中使用。

    Classes/AlivcBasicVideo/LongBasicView文件夹下的AlivcLongVideoPlayView文件是封装好的播放窗口View组件,可以将AlivcLongVideoPlayView文件及依赖的其他文件集成到工程中进行使用。

  3. 使用AlivcLongVideoPlayView。

    在播放页面添加AlivcLongVideoPlayView实例。

    #import "AlivcLongVideoPlayView.h"
    
    @interface AlivcLongVideoViewController ()<AliyunVodPlayerViewDelegate>
    
    @property (nonatomic, strong) AlivcLongVideoPlayView *playerView;
    
    @end
    
    - (void)viewDidLoad {
    	[self.view addSubview:self.playerView];
    }
    
    - (AlivcLongVideoPlayView *)playerView {
     if (!_playerView) {
     _playerView = [[AlivcLongVideoPlayView alloc]init];
     _playerView.delegate = self;
     }
     return _playerView;
    }

    调用播放控制相关逻辑。

    /// 准备播放,可根据对外的方法任选调用
    // 传入url进行准备播放
    NSURL *URL = [NSURL URLWithString:@"xxxx"]; // xxxx 代表url字符串
    [self.playerView playViewPrepareWithURL:URL];
    
    // 传入AlivcVideoPlayPlayerConfig实例进行准备播放
    AlivcVideoPlayPlayerConfig *config = [[AlivcVideoPlayPlayerConfig alloc] init];
    config.sourceType = SourceTypeUrl;
    config.urlSource = [[AVPUrlSource alloc] urlWithString:@"xxxx"];
    [self.playerView playWithPlayerConfig:config];
    
    // 开始播放
    [self.playerView start];
    // 暂停播放
    [self.playerView pause];
    // 停止播放
    [self.playerView stop];
    // 销毁播放器
    [self.playerView releasePlayer];
    
    说明

    上述代码展示了部分接口,其余部分的接口可以参照AlivcBasicVideo组件文件的示例代码来使用,也可以根据播放器SDK的API接口文档自己创建播放器实例进行播放。

故障排除

遇到播放器相关问题可以参考iOS端进行排查解决。