获取roomID、access_token

获取roomID、access_token

对接流程

1: 创建Player

SDK 中的 VHLivePlayer 模块负责实现直播播放功能。

VHLivePlayer _livePlayer = [[VHLivePlayer alloc] init];

1: 设置 渲染View、delegate

  • delegate 设置播放器代理
  • 接下来我们要给播放器的视频画面找个地方来显示,iOS系统中使用 view 作为基本的界面渲染单位,所以您只需要准备一个 view 并调整好布局就可以了。
    _livePlayer.delegate = self;
    _livePlayer.view.frame = self.view.bounds;
    [self.view insertSubview:_livePlayer.view atIndex:0];

如果您要调整渲染画面的大小,只需要调整_livePlayer.view大小和位置即可

2: 开始播放

  • roomId 推流房间id 可以通过调用 api 创建
  • accessToken 可以通过调用 api 获得
    NSString* roomId = @"lss_xxxxxx";
    NSString* accessToken = @"xxxxxxxxxx";
    [_livePlayer startPlay:roomId accessToken:accessToken];

3: 画面调整

_livePlayer.scalingMode = VHPlayerScalingModeAspectFit;

可选值 含义
VHPlayerScalingModeFill 将图像拉伸填充
VHPlayerScalingModeAspectFit 将图像等比例缩放,适配最长边,缩放后的宽和高都不会超过显示区域,居中显示,画面可能会留有黑边
VHPlayerScalingModeAspectFill 将图像等比例铺满整个屏幕,多余部分裁剪掉,此模式下画面不会留黑边,但可能因为部分区域被裁剪而显示不全

4: 清晰度切换

_livePlayer.curDefinition = VHDefinitionOrigin;

可选值 含义
VHDefinitionOrigin 原画
VHDefinitionUHD 超高清
VHDefinitionHD 高清
VHDefinitionSD 标清
VHDefinitionAudio 纯音频

5: 静音

默认为NO 关闭静音状态 开启静音状态设置为YES即可

_livePlayer.mute = YES;

6: 暂停/恢复播放

对于直播播放而言,并没有真正意义上的暂停,所谓的直播暂停,只是画面冻结和关闭声音,而云端的视频源还在不断地更新着,所以当您调用 resume 的时候,会从最新的时间点开始播放,这跟点播是有很大不同的(点播播放器的暂停和继续与播放本地视频文件时的表现相同)。

// 暂停
[_livePlayer pause];
// 恢复
[_livePlayer resume];

7: 结束播放

结束当前直播,播放器资源并未释放

[_livePlayer stopPlay];

8: 销毁播放器

释放播放器资源

[_livePlayer destroyPlayer];

事件处理

  • 推流状态监听 SDK 通过 VHLivePlayerDelegate 代理来监听推流相关的事件
状态 含义
VHPlayerStatusLoading 加载中
VHPlayerStatusPlaying 播放中
VHPlayerStatusStop 停止播放
VHPlayerStatusPause 播放暂停
  • 错误通知
错误类型 数值 含义说明
VHLivePlayErrorNone 0
VHivePlayGetUrlError 1 获取服务器rtmpUrl错误
VHLivePlayParamError 2 参数错误
VHLivePlayRecvError 3 接受数据错误
VHLivePlayCDNConnectError 4 CDN链接失败
VHLivePlayStopPublish 5 已停止推流