Copyright (c) 2021 Tencent. All rights reserved.
Module: V2TXLivePlayer @ TXLiteAVSDK
Function: 腾讯云直播播放器
功能
腾讯云直播播放器。
主要负责从指定的直播流地址拉取音视频数据,并进行解码和本地渲染播放。
介绍
播放器包含如下能力:
支持 RTMP、HTTP-FLV、HLS、TRTC、WebRTC 协议。
屏幕截图,可以截取当前直播流的视频画面。
延时调节,可以设置播放器缓存自动调整的最小和最大时间。
自定义的视频数据处理,您可以根据项目需要处理直播流中的视频数据后,再进行渲染以及播放。
V2TXLivePlayer
V2TXLivePlayer
函数列表 | 描述 |
设置播放器回调 | |
设置播放器的视频渲染 View,该控件负责显示视频内容 | |
设置播放器画面的旋转角度 | |
设置画面的填充模式 | |
开始播放音视频流 | |
停止播放音视频流 | |
播放器是否正在播放中 | |
暂停播放器的音频流 | |
恢复播放器的音频流 | |
暂停播放器的视频流 | |
恢复播放器的视频流 | |
设置播放器音量 | |
设置播放器缓存自动调整的最小和最大时间 ( 单位:秒 ) | |
直播流无缝切换,支持 FLV 和 LEB | |
获取码流信息 | |
启用播放音量大小提示 | |
截取播放过程中的视频画面 | |
开启/关闭对视频帧的监听回调 | |
开启/关闭对音频数据的监听回调 | |
开启接收 SEI 消息 | |
开启画中画功能,仅支持直播和快直播播放 | |
是否显示播放器状态信息的调试浮层 | |
调用 V2TXLivePlayer 的高级 API 接口 | |
开始录制音视频流 | |
停止录制音视频流 |
setObserver:
setObserver:
- (void)setObserver: |
设置播放器回调
通过设置回调,可以监听 V2TXLivePlayer 播放器的一些回调事件,
包括播放器状态、播放音量回调、音视频首帧回调、统计数据、警告和错误信息等。
参数 | 描述 |
observer |
setRenderView:
setRenderView:
- (V2TXLiveCode)setRenderView: | (TXView *)view |
setRenderRotation:
setRenderRotation:
- (V2TXLiveCode)setRenderRotation: |
设置播放器画面的旋转角度
参数 | 描述 |
rotation | V2TXLiveRotation0【默认值】: 0度, 不旋转。 V2TXLiveRotation90: 顺时针旋转90度。 V2TXLiveRotation180: 顺时针旋转180度。 V2TXLiveRotation270: 顺时针旋转270度。 |
返回值说明:
V2TXLIVE_OK: 成功。
setRenderFillMode:
setRenderFillMode:
- (V2TXLiveCode)setRenderFillMode: |
设置画面的填充模式
参数 | 描述 |
mode | V2TXLiveFillModeFill 【默认值】: 图像铺满屏幕,不留黑边,如果图像宽高比不同于屏幕宽高比,部分画面内容会被裁剪掉。 V2TXLiveFillModeFit: 图像适应屏幕,保持画面完整,但如果图像宽高比不同于屏幕宽高比,会有黑边的存在。 V2TXLiveFillModeScaleFill: 图像拉伸铺满,因此长度和宽度可能不会按比例变化。 |
返回值说明:
V2TXLIVE_OK: 成功。
startLivePlay:
startLivePlay:
- (V2TXLiveCode)startLivePlay: | (NSString *)url |
开始播放音视频流
参数 | 描述 |
url | 音视频流的播放地址,支持 RTMP,HTTP-FLV,TRTC。 |
注意
10.7 版本开始,需要通过 setLicence 或者 setLicence 设置 Licence 后方可成功播放,否则将播放失败(黑屏),全局仅设置一次即可。直播 Licence、短视频 Licence 和视频播放 Licence 均可使用,若您暂未获取上述 Licence,可快速免费申请测试版 Licence 以正常播放,正式版 Licence 需购买。
返回值说明:
V2TXLIVE_OK: 操作成功,开始连接并播放。
V2TXLIVE_ERROR_INVALID_PARAMETER:操作失败,url 不合法。
V2TXLIVE_ERROR_REFUSED:RTC 不支持同一设备上同时推拉同一个 StreamId。
V2TXLIVE_ERROR_INVALID_LICENSE:licence 不合法,播放失败。
stopPlay
stopPlay
isPlaying
isPlaying
播放器是否正在播放中
返回值说明:
是否正在播放。
1: 正在播放中。
0: 已经停止播放。
pauseAudio
pauseAudio
resumeAudio
resumeAudio
pauseVideo
pauseVideo
resumeVideo
resumeVideo
setPlayoutVolume:
setPlayoutVolume:
- (V2TXLiveCode)setPlayoutVolume: | (NSUInteger)volume |
setCacheParams:maxTime:
setCacheParams:maxTime:
- (V2TXLiveCode)setCacheParams: | (CGFloat)minTime |
maxTime: | (CGFloat)maxTime |
设置播放器缓存自动调整的最小和最大时间 ( 单位:秒 )
参数 | 描述 |
maxTime | 缓存自动调整的最大时间,取值需要大于0。【默认值】:5。 |
minTime | 缓存自动调整的最小时间,取值需要大于0。【默认值】:1。 |
返回值说明:
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,minTime 和 maxTime 需要大于0。
V2TXLIVE_ERROR_REFUSED: 播放器处于播放状态,不支持修改缓存策略。
switchStream:
switchStream:
- (V2TXLiveCode)switchStream: | (NSString*)newUrl |
直播流无缝切换,支持 FLV 和 LEB
参数 | 描述 |
newUrl | 新的拉流地址。 |
getStreamList
getStreamList
获取码流信息
enableVolumeEvaluation:
enableVolumeEvaluation:
- (V2TXLiveCode)enableVolumeEvaluation: | (NSUInteger)intervalMs |
启用播放音量大小提示
参数 | 描述 |
intervalMs | 决定了 onPlayoutVolumeUpdate 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;【默认值】:0,不开启。 |
返回值说明:
V2TXLIVE_OK: 成功。
snapshot
snapshot
enableObserveVideoFrame:pixelFormat:bufferType:
enableObserveVideoFrame:pixelFormat:bufferType:
- (V2TXLiveCode)enableObserveVideoFrame: | (BOOL)enable |
pixelFormat: | |
bufferType: |
开启/关闭对视频帧的监听回调
SDK 在您开启此开关后将不再渲染视频画面,您可以通过 V2TXLivePlayerObserver 获得视频帧,并执行自定义的渲染逻辑。
参数 | 描述 |
bufferType | |
enable | 是否开启自定义渲染。【默认值】:NO。 |
pixelFormat |
返回值说明:
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_NOT_SUPPORTED: 像素格式或者数据格式不支持。
enableObserveAudioFrame:
enableObserveAudioFrame:
- (V2TXLiveCode)enableObserveAudioFrame: | (BOOL)enable |
开启/关闭对音频数据的监听回调
如果您开启此开关,您可以通过 V2TXLivePlayerObserver 获得音频数据,并执行自定义的逻辑。
参数 | 描述 |
enable | 是否开启音频数据回调。【默认值】:NO。 |
返回值说明:
V2TXLIVE_OK: 成功
enableReceiveSeiMessage:payloadType:
enableReceiveSeiMessage:payloadType:
- (V2TXLiveCode)enableReceiveSeiMessage: | (BOOL)enable |
payloadType: | (int)payloadType |
开启接收 SEI 消息
参数 | 描述 |
enable | YES: 开启接收 SEI 消息; NO: 关闭接收 SEI 消息。【默认值】: NO。 |
payloadType | 指定接收 SEI 消息的 payloadType,支持 5、242、243,请与发送端的 payloadType 保持一致。 |
返回值说明:
V2TXLIVE_OK: 成功。
enablePictureInPicture:
enablePictureInPicture:
- (V2TXLiveCode)enablePictureInPicture: | (BOOL)enable |
开启画中画功能,仅支持直播和快直播播放
参数 | 描述 |
enable | YES: 开启画中画功能; NO: 关闭画中画功能。【默认值】: NO。 |
返回值说明:
V2TXLIVE_OK: 成功。
showDebugView:
showDebugView:
- (void)showDebugView: | (BOOL)isShow |
是否显示播放器状态信息的调试浮层
参数 | 描述 |
isShow | 是否显示。【默认值】:NO。 |
setProperty:value:
setProperty:value:
- (V2TXLiveCode)setProperty: | (NSString *)key |
value: | (NSObject *)value |
调用 V2TXLivePlayer 的高级 API 接口
参数 | 描述 |
key | 高级 API 对应的 key, 详情请参考 V2TXLiveProperty 定义。 |
value | 调用 key 所对应的高级 API 时,需要的参数。 |
注意
该接口用于调用一些高级功能。
返回值说明:
V2TXLIVE_OK: 成功。
V2TXLIVE_ERROR_INVALID_PARAMETER: 操作失败,key 不允许为 nil。
startLocalRecording:
startLocalRecording:
- (V2TXLiveCode)startLocalRecording: |
开始录制音视频流
注意
拉流开启后才能开始录制,非拉流状态下开启录制无效。
录制过程中不要动态切换软/硬解,生成的视频极有可能出现异常。
返回值说明:
V2TXLIVE_OK
: 成功。 V2TXLIVE_ERROR_INVALID_PARAMETER
: 参数不合法,比如filePath 为空。 V2TXLIVE_ERROR_REFUSED
: API被拒绝,拉流尚未开始。stopLocalRecording
stopLocalRecording
停止录制音视频流
注意
当停止拉流后,如果视频还在录制中,SDK 内部会自动结束录制。