1 概念说明
点播的视频源是存储在微吼云的一个视频文件,只要视频未被移除,就可以随时播放, 播放中您可以通过进度条控制播放位置。
2 接入准备
2.1 成为开发者
申请开通微吼云账号,提供用户资料,微吼服务人员在后台为用户开通平台账号,账号开通后,用户即可登录,成为一名开发者。
2.2 创建应用
登录微吼云平台后,控制台选择应用管理,进入应用管理页面点击创建应用,根据页面提示信息,完成应用创建。应用创建完成,您可以在控制台界面找到在应用管理界面您可以找到 AppID。
2.3 添加服务
应用创建完成后,选择添加服务,添加点播服务,添加成功后可在点播服务下点播管理的【点播配置】页面查看AppID
2.4 SDK下载
3 工程配置
3.1 支持平台
- SDK支持iOS 8.0以上系统
3.2 开发环境
- Xcode 8或更高版本
- OS X 10.10或更高版本
3.3 Xcode工程设置
下面通过一个简单的iOS Application工程,说明如和在Xcode工程中配置SDK。
3.3.1 拷贝SDK文件
在本例中,新建一个名字叫做VHSDKDemo的iOS工程,将下载下来的文件夹拷贝至工程目录。目录结构如下图所示:
3.3.2 添加库和Framework
libc++.tbd
libz2.1.0.tbd
libicucore.tbd
libz.tbd
libiconv.tbd
CoreTelephony.framework
MediaPlayer.framework
AVFoundation.framework
VideoToolbox.framework
AssetsLibrary.framework
OpenAL.framework
OpenGLES.framework
QuartzCore.framework
CoreMedia.framework
Security.framework
3.3.3 工程设置修改
- AppDelegate.m 文件名修改为AppDelegate.mm
- Build Setting 中 Enable Bitcode 设置为NO
- 设置Info.plist中 App Transport Security Settings -> Allow Arbitrary Loads 设置为 YES
- 设置Info.pplist中 Privacy - Camera Usage Description 是否允许使用相机
- 设置Info.pplist中 Privacy - Microphone Usage Description 是否允许使用麦克风
3.4 验证
下面在VHSDKDemo的代码中,调用SDK的接口,设置appID 获取SDK版本信息,以验证工程设置是否正确。
3.4.1 引用头文件
在AppDelegate.mm开头引用SDK的头文件:
#import "VHLiveBase.h"
3.4.2 添加调用代码
在application: didFinishLaunchingWithOptions:方法中添加代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[VHLiveBase registerApp:@"xxxxxxxxx"];//AppID:xxxxxxxxx
[VHLiveBase setThirdPartyUserId:@"xxxxxxxx"];//第三方账号id:xxxxxxxx
NSLog(@"SDK Version: %@",[VHLiveBase getSDKVersion]);
return YES;
}
3.4.3 编译运行
如果前面各个步骤都操作正确的话,VHSDKDemo工程应该可以顺利编译通过。在Debug模式下运行APP,Xcode的Console窗格会打印出SDK的版本信息。
至此,工程配置完成。
4 注册APP
[VHLiveBase registerApp:@"xxxxxxxxx"];//AppID:xxxxxxxxx
5 设置第三方ID
[VHLiveBase setThirdPartyUserId:@"xxxxxxxx"];//第三方账号id:xxxxxxxx
6 LOG打印
在 VHLiveBase 中可以设置 log的级别,具体代码如下:
[VHLiveBase setLogLevel:VHLogLevelDebug];
7 获取roomID、access_token
8 代码接入
8.1 创建VodPlayer
SDK 中的 VHVodPlayer 模块负责实现直播播放功能。
VHVodPlayer _vodPlayer = [[VHVodPlayer alloc] init];
8.2 设置 渲染View、delegate
- delegate 设置播放器代理
- 接下来我们要给播放器的视频画面找个地方来显示,iOS系统中使用 view 作为基本的界面渲染单位,所以您只需要准备一个 view 并调整好布局就可以了。
_vodPlayer.delegate = self;
_vodPlayer.view.frame = self.view.bounds;
[self.view insertSubview:_vodPlayer.view atIndex:0];
8.3 开始播放
- recordId 点播id 可以通过调用 api 创建
- accessToken 可以通过调用 api 获得
NSString* recordId = @"lss_xxxxxx";
NSString* accessToken = @"xxxxxxxxxx";
[_vodPlayer startPlay:recordId accessToken:accessToken];
8.4 画面调整
_vodPlayer.scalingMode = VHPlayerScalingModeAspectFit;
可选值 | 含义 |
---|---|
VHPlayerScalingModeFill | 将图像拉伸填充 |
VHPlayerScalingModeAspectFit | 将图像等比例缩放,适配最长边,缩放后的宽和高都不会超过显示区域,居中显示,画面可能会留有黑边 |
VHVPlayerScalingModeAspectFill | 将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不会留黑边,但可能因为部分区域被裁剪而显示不全 |
8.5 清晰度切换
_vodPlayer.curDefinition = VHDefinitionOrigin;
可选值 | 含义 |
---|---|
VHDefinitionOrigin | 原画 |
VHDefinitionUHD | 超高清 |
VHDefinitionHD | 高清 |
VHDefinitionSD | 标清 |
VHDefinitionAudio | 纯音频 |
8.6 暂停/恢复播放
// 暂停
[_vodPlayer pause];
// 恢复
[_vodPlayer resume];
8.7 结束播放
结束当前直播,播放器资源并未释放
[_vodPlayer stopPlay];
8.8 销毁播放器
释放播放器资源
[_vodPlayer destroyPlayer];
9 事件处理
- 推流状态监听
SDK 通过 VHPlayerDelegate 代理来监听推流相关的事件
状态 | 含义 |
---|---|
VHPlayerStatusLoading | 加载中 |
VHPlayerStatusPlaying | 播放中 |
VHPlayerStatusStop | 停止播放 |
VHPlayerStatusPause | 播放暂停 |