|
|
|
|
|
# 1.概述
|
|
|
|
|
|
## 1.1 阅读对象
|
... | ... | @@ -14,7 +13,7 @@ |
|
|
| 功能 | 描述 |
|
|
|
| -------- | ---------------------- |
|
|
|
| 直播视频 | 观看直播视频 |
|
|
|
| 视频倍速 | 观看直播回放倍速播放 |
|
|
|
| 视频倍速 | 观看直播回放倍速播放 |
|
|
|
| 文档展示 | 能够观看当前直播文档 |
|
|
|
| 聊天 | 所有直播时的聊天 |
|
|
|
| 简介 | 支持对直播间的信息展示 |
|
... | ... | @@ -27,8 +26,9 @@ |
|
|
|
|
|
## 2.1 开发环境
|
|
|
|
|
|
- Xcode : Xcode 开发IDE
|
|
|
- Version 10.0 及以上
|
|
|
- Xcode 10.0 或以上版本
|
|
|
- 支持 iOS 9.0 或以上版本的 iOS 设备
|
|
|
- 有效的 获得场景视频 云直播账号
|
|
|
|
|
|
## 2.2 SDK配置
|
|
|
|
... | ... | @@ -44,7 +44,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版本号可自行更改。
|
|
|
```
|
|
|
|
... | ... | @@ -173,14 +173,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. 在终端中执行
|
... | ... | @@ -202,6 +202,7 @@ PS:其中3.8.0与3.11.2为SDK版本号可自行更改。 |
|
|
解决方案:
|
|
|
Targets -> Build Settings -> 搜索 "Enable Bitcode" 设置为 "NO"
|
|
|
```
|
|
|
|
|
|
2.command + r 运行
|
|
|
|
|
|
```
|
... | ... | @@ -215,7 +216,7 @@ Destination 选择 "Frameworks" -> |
|
|
点击当前目录下的 "+" 将SDK包含的.framework 包添加即可
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 2.3 日志存储
|
|
|
|
... | ... | @@ -248,6 +249,7 @@ Destination 选择 "Frameworks" -> |
|
|
ERROR_USELESS_INFO = 1002 没有获取到有用的视频信息
|
|
|
ERROR_PASSWORD = 1003 密码错误
|
|
|
```
|
|
|
|
|
|
系统错误类型
|
|
|
|
|
|
```
|
... | ... | @@ -305,7 +307,12 @@ Destination 选择 "Frameworks" -> |
|
|
* (已弃用!) security //是否使用https
|
|
|
* 必填参数 pauseInBackGround; //后台是否继续播放,注意:如果开启后台播放需要打开 xcode->Capabilities->Background Modes->on->Audio,AirPlay,and Picture in Picture
|
|
|
* 必填参数 defaultColor; //ppt默认底色,不写默认为白色
|
|
|
* 必填参数 PPTScalingMode; //PPT适配方式 PPT适配模式分为四种,1.一种是全部填充屏幕,可拉伸变形,2.第二种是等比缩放,横向或竖向贴住边缘,另一方向可以留黑边,3.第三种是等比缩放,横向或竖向贴住边缘,另一方向出边界,裁剪PPT,不可以留黑边,4.根据直播间文档显示模式的返回值进行设置(推荐)(The New Method)
|
|
|
* 必填参数 PPTScalingMode; //PPT适配方式
|
|
|
PPT适配模式分为四种,
|
|
|
1.拉伸填充,PPT内容全部展示在显示区域,会被拉伸或压缩,不会存在黑边
|
|
|
2.等比居中,PPT内容保持原始比例,适应窗口展示在显示区域,会存在黑边
|
|
|
3.等比填充,PPT内容保持原始比例,以横向或纵向适应显示区域,另一方向将会超出显示区域,超出部分会被裁减,不会存在黑边
|
|
|
4.根据直播间文档显示模式的返回值进行设置(推荐)
|
|
|
* 必填参数 scalingMode; //屏幕适配方式
|
|
|
*/
|
|
|
- (id)initWithParameter:(PlayParameter *)parameter;
|
... | ... | @@ -418,11 +425,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适配方式,含义见上面
|
|
|
/**
|
... | ... | @@ -476,11 +484,24 @@ Destination 选择 "Frameworks" -> |
|
|
|
|
|
```
|
|
|
/**
|
|
|
* @brief time:从直播开始到现在的秒数,SDK会在画板上绘画出来相应的图形
|
|
|
* (已废弃)
|
|
|
* @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 观看回放
|
... | ... | @@ -528,9 +549,13 @@ Destination 选择 "Frameworks" -> |
|
|
*/
|
|
|
-(void)receivedMarqueeInfo:(NSDictionary *)dic;
|
|
|
/**
|
|
|
*接收到播放线路 例:int值 2 代表两条 changeLineWithNum传0或1
|
|
|
* 接收到播放线路 例:int值 2 代表两条 changeLineWithNum传0或1 (已废弃)
|
|
|
*/
|
|
|
-(void)numberOfReceivedLines:(NSInteger)linesCount;
|
|
|
/**
|
|
|
* 接收到播放线路 例:videoArray元素个数 2 代表2条线路 changeLineWithPlayParameter传0或1
|
|
|
*/
|
|
|
-(void)numberOfReceivedLinesWithVideo:(NSArray *)videoArray audio:(NSArray *)audioArray;
|
|
|
```
|
|
|
|
|
|
3.2.2 主动方法(可选)
|
... | ... | @@ -599,13 +624,25 @@ Destination 选择 "Frameworks" -> |
|
|
*/
|
|
|
-(void)getPracticeInformation;
|
|
|
/**
|
|
|
* @brief 切换线路
|
|
|
* @brief 切换线路 (已废弃)
|
|
|
* index 传入numberOfReceivedLines的返回值 如:返回2 则传0或1
|
|
|
* results:
|
|
|
success 0 切换成功 -1切换品失败 -2 切换频繁
|
|
|
success 0 切换成功 -1切换失败 -2 切换频繁
|
|
|
currentIndex 当前播放线路
|
|
|
*/
|
|
|
- (void)changeLineWithNum:(NSInteger)index completion:(void (^)(NSDictionary * results))completion;
|
|
|
/**
|
|
|
* @brief 切换线路
|
|
|
* param
|
|
|
* disableVideo 视频传no,音频传yes(账号开启音频模式下才可以传yes)
|
|
|
* lineNum 线路 例:-(void)numberOfReceivedLinesWithVideo:(NSArray *)videoArray audio:(NSArray *)audioArray;中videoArray元素个数为2 则传0或1
|
|
|
* results:
|
|
|
success 0 切换成功 -1切换失败 -2 切换频繁
|
|
|
currentIndex 当前播放线路
|
|
|
*/
|
|
|
|
|
|
- (void)changeLineWithPlayParameter:(PlayParameter *)param completion:(void (^)(NSDictionary * results))completion;
|
|
|
|
|
|
```
|
|
|
|
|
|
## 3.3 文档功能
|
... | ... | @@ -673,6 +710,25 @@ 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;
|
|
|
```
|
|
|
|
|
|
|
... | ... | @@ -792,6 +848,106 @@ Destination 选择 "Frameworks" -> |
|
|
-(void)receivePracticeWithDic:(NSDictionary *) resultDic;
|
|
|
```
|
|
|
|
|
|
## 3.9 视频播放状态
|
|
|
|
|
|
播放器状态类型
|
|
|
|
|
|
```
|
|
|
/**
|
|
|
* 视频播放状态
|
|
|
* 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;
|
|
|
/**
|
|
|
* @brief 视频准备播放
|
|
|
* @param dict 数据
|
|
|
*/
|
|
|
- (void)HDMediaPlaybackIsPreparedToPlayDidChange:(NSDictionary *)dict;
|
|
|
```
|
|
|
|
|
|
## 3.10 视频缓存速度
|
|
|
|
|
|
代理方法(可选)
|
|
|
|
|
|
```
|
|
|
/**
|
|
|
* @brief 视频加载速度
|
|
|
* @param speed 视频加载速度字符串
|
|
|
*/
|
|
|
- (void)onBufferSpeed:(NSString *)speed;
|
|
|
```
|
|
|
|
|
|
# 4.常见问题
|
|
|
|
|
|
## 4.1 旋转屏错误
|
... | ... | @@ -874,4 +1030,4 @@ error: Bundle only contains bitcode-marker /var/folders/s5/lnk362pd4cs0lmtn_43pp |
|
|
|
|
|
第二步: Shared Workspace Settings:
|
|
|
|
|
|
第三步:Build System -> Legacy Build System |
|
|
第三步:Build System -> Legacy Build System |
|
|
\ No newline at end of file |