|
|
|
|
|
# 1.概述
|
|
|
|
|
|
## 1.1 阅读对象
|
... | ... | @@ -26,8 +25,9 @@ |
|
|
|
|
|
## 2.1 开发环境
|
|
|
|
|
|
- Xcode : Xcode 开发IDE
|
|
|
- Version 10.0 及以上
|
|
|
- Xcode 10.0 或以上版本
|
|
|
- 支持 iOS 9.0 或以上版本的 iOS 设备
|
|
|
- 有效的 获得场景视频 云直播账号
|
|
|
|
|
|
## 2.2 SDK配置
|
|
|
|
... | ... | @@ -43,7 +43,7 @@ v3.11.2 之前的版本请用如下链接: |
|
|
pod 'CCLivePlaySDK', :podspec => 'https://raw.githubusercontent.com/CCVideo/Live_iOS_Play_SDK/3.8.0/CCLivePlaySDK.podspec'
|
|
|
v3.11.2 之后的版本请用如下链接:
|
|
|
pod 'CCLivePlaySDK', :podspec => 'https://hdgit.bokecc.com/ccvideo/Live_iOS_Play_SDK/raw/3.11.2/CCLivePlaySDK.podspec'
|
|
|
|
|
|
|
|
|
PS:其中3.8.0与3.11.2为SDK版本号可自行更改。
|
|
|
```
|
|
|
|
... | ... | @@ -172,14 +172,14 @@ PS:其中3.8.0与3.11.2为SDK版本号可自行更改。 |
|
|
|
|
|
```
|
|
|
如果是有连麦的SDK:
|
|
|
pod 'CCLivePlaySDK', '~> 3.8.0'
|
|
|
如果是无连麦的SDK:
|
|
|
v3.11.2 之前的版本请用如下链接:
|
|
|
pod 'CCLivePlaySDK', :podspec => 'https://raw.githubusercontent.com/CCVideo/Live_iOS_Play_SDK/3.8.0/CCLivePlaySDK.podspec'
|
|
|
v3.11.2 之后的版本请用如下链接:
|
|
|
pod 'CCLivePlaySDK', :podspec => 'https://hdgit.bokecc.com/ccvideo/Live_iOS_Play_SDK/raw/3.11.2/CCLivePlaySDK.podspec'
|
|
|
|
|
|
PS:其中3.8.0与3.11.2为SDK版本号可自行更改。
|
|
|
pod 'CCLivePlaySDK', '~> 3.8.0'
|
|
|
如果是无连麦的SDK:
|
|
|
v3.11.2 之前的版本请用如下链接:
|
|
|
pod 'CCLivePlaySDK', :podspec => 'https://raw.githubusercontent.com/CCVideo/Live_iOS_Play_SDK/3.8.0/CCLivePlaySDK.podspec'
|
|
|
v3.11.2 之后的版本请用如下链接:
|
|
|
pod 'CCLivePlaySDK', :podspec => 'https://hdgit.bokecc.com/ccvideo/Live_iOS_Play_SDK/raw/3.11.2/CCLivePlaySDK.podspec'
|
|
|
|
|
|
PS:其中3.8.0与3.11.2为SDK版本号可自行更改。
|
|
|
```
|
|
|
|
|
|
3. 在终端中执行
|
... | ... | @@ -201,6 +201,7 @@ PS:其中3.8.0与3.11.2为SDK版本号可自行更改。 |
|
|
解决方案:
|
|
|
Targets -> Build Settings -> 搜索 "Enable Bitcode" 设置为 "NO"
|
|
|
```
|
|
|
|
|
|
2.command + r 运行
|
|
|
|
|
|
```
|
... | ... | @@ -214,7 +215,7 @@ Destination 选择 "Frameworks" -> |
|
|
点击当前目录下的 "+" 将SDK包含的.framework 包添加即可
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 2.3 日志存储
|
|
|
|
... | ... | @@ -247,6 +248,7 @@ Destination 选择 "Frameworks" -> |
|
|
ERROR_USELESS_INFO = 1002 没有获取到有用的视频信息
|
|
|
ERROR_PASSWORD = 1003 密码错误
|
|
|
```
|
|
|
|
|
|
系统错误类型
|
|
|
|
|
|
```
|
... | ... | @@ -309,7 +311,13 @@ Destination 选择 "Frameworks" -> |
|
|
* 必填参数 scalingMode; //屏幕适配方式
|
|
|
* 必填参数 destination; //下载文件解压到的目录路径(离线下载相关)
|
|
|
* 必填参数 defaultColor; //ppt默认底色,不写默认为白色
|
|
|
* 必填参数 PPTScalingMode; //PPT适配方式 PPT适配模式分为四种,1.一种是全部填充屏幕,可拉伸变形,2.第二种是等比缩放,横向或竖向贴住边缘,另一方向可以留黑边,3.第三种是等比缩放,横向或竖向贴住边缘,另一方向出边界,裁剪PPT,不可以留黑边,4.根据直播间文档显示模式的返回值进行设置(推荐)(The New Method)
|
|
|
* 必填参数 PPTScalingMode; //PPT适配方式
|
|
|
PPT适配模式分为四种,
|
|
|
1.拉伸填充,PPT内容全部展示在显示区域,会被拉伸或压缩,不会存在黑边
|
|
|
2.等比居中,PPT内容保持原始比例,适应窗口展示在显示区域,会存在黑边
|
|
|
3.等比填充,PPT内容保持原始比例,以横向或纵向适应显示区域,另一方向将会超出显示区域,超出部分会被裁减,不会存在黑边
|
|
|
4.根据直播间文档显示模式的返回值进行设置(推荐)
|
|
|
|
|
|
* 必填参数 pauseInBackGround; //后台是否继续播放,注意:如果开启后台播放需要打开 xcode->Capabilities->Background Modes->on->Audio,AirPlay,and Picture in Picture
|
|
|
*/
|
|
|
- (id)initWithParameter:(PlayParameter *)parameter;
|
... | ... | @@ -343,7 +351,6 @@ Destination 选择 "Frameworks" -> |
|
|
配置参数:PlayParameter的属性如下
|
|
|
|
|
|
```
|
|
|
|
|
|
/**
|
|
|
* @brief 文档父类窗口
|
|
|
*/
|
... | ... | @@ -377,11 +384,12 @@ Destination 选择 "Frameworks" -> |
|
|
*/
|
|
|
@property(nonatomic,assign)BOOL pauseInBackGround;//后台是否继续播放,注意:如果开启后台播放需要打开 xcode->Capabilities->Background Modes->on->Audio,AirPlay,and Picture in Picture
|
|
|
/**
|
|
|
* @brief PPT适配模式分为四种,
|
|
|
* 1.一种是全部填充屏幕,可拉伸变形,
|
|
|
* 2.第二种是等比缩放,横向或竖向贴住边缘,另一方向可以留黑边,
|
|
|
* 3.第三种是等比缩放,横向或竖向贴住边缘,另一方向出边界,裁剪PPT,不可以留黑边
|
|
|
* 4.根据直播间文档显示模式的返回值进行设置(推荐)
|
|
|
* @brief PPT适配模式分为四种
|
|
|
* PPT适配模式分为四种,
|
|
|
* 1.拉伸填充,PPT内容全部展示在显示区域,会被拉伸或压缩,不会存在黑边
|
|
|
* 2.等比居中,PPT内容保持原始比例,适应窗口展示在显示区域,会存在黑边
|
|
|
* 3.等比填充,PPT内容保持原始比例,以横向或纵向适应显示区域,另一方向将会超出显示区域,超出部分会被裁减,不会存在黑边
|
|
|
* 4.根据直播间文档显示模式的返回值进行设置(推荐)
|
|
|
*/
|
|
|
@property(assign, nonatomic)NSInteger PPTScalingMode;//PPT适配方式,含义见上面
|
|
|
/**
|
... | ... | @@ -432,11 +440,24 @@ Destination 选择 "Frameworks" -> |
|
|
|
|
|
```
|
|
|
/**
|
|
|
* (已废弃)
|
|
|
* @brief time:从直播开始到现在的秒数,SDK会在画板上绘画出来相应的图形
|
|
|
* 该方法已废弃:配置完SDK基本信息,开始播放会自行播放文档,不需求再次处理;!!!获取播放时间通过代理方法获取: - (void)HDPlayerCurrentTime:(NSTimeInterval)currentTime totalTime:(NSTimeInterval)totalTime;
|
|
|
*/
|
|
|
- (void)continueFromTheTime:(NSInteger)time;
|
|
|
```
|
|
|
|
|
|
代理方法 (可选)
|
|
|
|
|
|
```
|
|
|
/**
|
|
|
* @brief 播放器时间
|
|
|
* @param currentTime 当前时间
|
|
|
* @param totalTime 总时间
|
|
|
*/
|
|
|
- (void)HDPlayerCurrentTime:(NSTimeInterval)currentTime totalTime:(NSTimeInterval)totalTime;
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 3.2 观看离线回放
|
... | ... | @@ -581,6 +602,26 @@ Destination 选择 "Frameworks" -> |
|
|
* @brief 改变文档父窗口
|
|
|
*/
|
|
|
- (void)changeDocParent:(UIView *) docParent;
|
|
|
/**
|
|
|
* @brief 主动调用方法 用于调整PPT缩放模式 (已废弃)
|
|
|
* @param docFrame 文档的frame
|
|
|
* @param PPTScalingMode PPT缩放模式
|
|
|
* 1 = 拉伸填充:PPT内容全部展示在显示区域,会被拉伸或压缩,不会存在黑边
|
|
|
* 2 = 等比居中:PPT内容保持原始比例,适应窗口展示在显示区域,会存在黑边
|
|
|
* 3 = 等比填充:PPT内容保持原始比例,以横向或纵向适应显示区域,另一方向将会超出显示区域,超出部分会被裁减,不会存在黑边
|
|
|
*
|
|
|
* 需要调整docFrame 请直接调用 - (void)changeDocFrame:(CGRect)docFrame;方法
|
|
|
*/
|
|
|
- (void)changeDocFrame:(CGRect)docFrame withPPTScalingMode:(NSInteger)PPTScalingMode;
|
|
|
|
|
|
/**
|
|
|
* @brief 主动调用方法 用于调整PPT缩放模式
|
|
|
* @param pptScalingMode PPT缩放模式
|
|
|
* 1 = 拉伸填充:PPT内容全部展示在显示区域,会被拉伸或压缩,不会存在黑边
|
|
|
* 2 = 等比居中:PPT内容保持原始比例,适应窗口展示在显示区域,会存在黑边
|
|
|
* 3 = 等比填充:PPT内容保持原始比例,以横向或纵向适应显示区域,另一方向将会超出显示区域,超出部分会被裁减,不会存在黑边
|
|
|
*/
|
|
|
- (void)changeDocPPTScalingMode:(NSInteger)pptScalingMode;
|
|
|
```
|
|
|
|
|
|
|
... | ... | @@ -668,6 +709,89 @@ Destination 选择 "Frameworks" -> |
|
|
- (void)broadcastHistory_msg:(NSArray *)array;
|
|
|
```
|
|
|
|
|
|
## 3.8 视频播放状态
|
|
|
|
|
|
播放器状态类型
|
|
|
|
|
|
```
|
|
|
/**
|
|
|
* 视频播放状态
|
|
|
* HDMoviePlaybackStateStopped 播放停止
|
|
|
* HDMoviePlaybackStatePlaying 开始播放
|
|
|
* HDMoviePlaybackStatePaused 暂停播放
|
|
|
* HDMoviePlaybackStateInterrupted 播放间断
|
|
|
* HDMoviePlaybackStateSeekingForward 播放快进
|
|
|
* HDMoviePlaybackStateSeekingBackward 播放后退
|
|
|
*/
|
|
|
typedef NS_ENUM(NSUInteger, HDMoviePlaybackState) {
|
|
|
HDMoviePlaybackStateStopped,
|
|
|
HDMoviePlaybackStatePlaying,
|
|
|
HDMoviePlaybackStatePaused,
|
|
|
HDMoviePlaybackStateInterrupted,
|
|
|
HDMoviePlaybackStateSeekingForward,
|
|
|
HDMoviePlaybackStateSeekingBackward,
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 视频加载状态
|
|
|
* HDMovieLoadStateUnknown 未知状态
|
|
|
* HDMovieLoadStatePlayable 视频未完成全部缓存,但已缓存的数据可以进行播放
|
|
|
* HDMovieLoadStatePlaythroughOK 完成缓存
|
|
|
* HDMovieLoadStateStalled 数据缓存已经停止,播放将暂停
|
|
|
*/
|
|
|
typedef NS_ENUM(NSUInteger, HDMovieLoadState) {
|
|
|
HDMovieLoadStateUnknown,
|
|
|
HDMovieLoadStatePlayable,
|
|
|
HDMovieLoadStatePlaythroughOK,
|
|
|
HDMovieLoadStateStalled,
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 视频播放完成原因
|
|
|
* HDMovieFinishReasonPlaybackEnded 自然播放结束
|
|
|
* HDMovieFinishReasonUserExited 用户人为结束
|
|
|
* HDMovieFinishReasonPlaybackError 发生错误崩溃结束
|
|
|
*/
|
|
|
typedef NS_ENUM(NSUInteger, HDMovieFinishReason) {
|
|
|
HDMovieFinishReasonPlaybackEnded,
|
|
|
HDMovieFinishReasonUserExited,
|
|
|
HDMovieFinishReasonPlaybackError,
|
|
|
};
|
|
|
```
|
|
|
|
|
|
代理方法(可选)
|
|
|
|
|
|
```
|
|
|
/**
|
|
|
* @brief 视频状态改变
|
|
|
* @param state
|
|
|
* HDMoviePlaybackStateStopped 播放停止
|
|
|
* HDMoviePlaybackStatePlaying 开始播放
|
|
|
* HDMoviePlaybackStatePaused 暂停播放
|
|
|
* HDMoviePlaybackStateInterrupted 播放间断
|
|
|
* HDMoviePlaybackStateSeekingForward 播放快进
|
|
|
* HDMoviePlaybackStateSeekingBackward 播放后退
|
|
|
*/
|
|
|
- (void)HDMoviePlayBackStateDidChange:(HDMoviePlaybackState)state;
|
|
|
/**
|
|
|
* @brief 视频加载状态
|
|
|
* @param state 播放状态
|
|
|
* HDMovieLoadStateUnknown 未知状态
|
|
|
* HDMovieLoadStatePlayable 视频未完成全部缓存,但已缓存的数据可以进行播放
|
|
|
* HDMovieLoadStatePlaythroughOK 完成缓存
|
|
|
* HDMovieLoadStateStalled 数据缓存已经停止,播放将暂停
|
|
|
*/
|
|
|
- (void)HDMovieLoadStateDidChange:(HDMovieLoadState)state;
|
|
|
/**
|
|
|
* @brief 视频播放完成原因
|
|
|
* @param reason 原因
|
|
|
* HDMovieFinishReasonPlaybackEnded 自然播放结束
|
|
|
* HDMovieFinishReasonUserExited 用户人为结束
|
|
|
* HDMovieFinishReasonPlaybackError 发生错误崩溃结束
|
|
|
*/
|
|
|
- (void)HDMoviePlayerPlaybackDidFinish:(HDMovieFinishReason)reason;
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
# 4.常见问题
|
... | ... | |