有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
Copyright (c) 2021 Tencent. All rights reserved.

Module: V2TXLivePusherObserver @ TXLiteAVSDK

Function: 腾讯云直播推流的回调通知


功能

腾讯云直播的推流回调通知。

介绍

可以接收 V2TXLivePusher 推流器的一些推流通知,包括推流器连接状态、音视频首帧回调、统计数据、警告和错误信息等。

V2TXLivePusherObserver

V2TXLivePusherObserver

函数列表
描述
直播推流器错误通知,推流器出现错误时,会回调该通知
直播推流器警告通知
首帧音频采集完成的回调通知
首帧视频采集完成的回调通知
麦克风采集音量值回调
推流器连接状态回调通知
直播推流器统计数据回调
截图回调
本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调
自定义视频处理回调
SDK 内部的 OpenGL 环境的销毁通知
设置云端的混流转码参数的回调,对应于 setMixTranscodingConfig 接口
当屏幕分享开始时,SDK 会通过此回调通知
当屏幕分享停止时,SDK 会通过此回调通知
录制任务开始的事件回调
录制任务正在进行中的进展事件回调
录制任务已经结束的事件回调

onError:message:extraInfo:

onError:message:extraInfo:
- (void)onError:
(V2TXLiveCode)code
message:
(NSString *)msg
extraInfo:
(NSDictionary *)extraInfo

直播推流器错误通知,推流器出现错误时,会回调该通知

参数
描述
code
错误码 V2TXLiveCode
extraInfo
扩展信息。
msg
错误信息。

onWarning:message:extraInfo:

onWarning:message:extraInfo:
- (void)onWarning:
(V2TXLiveCode)code
message:
(NSString *)msg
extraInfo:
(NSDictionary *)extraInfo

直播推流器警告通知

参数
描述
code
警告码 V2TXLiveCode
extraInfo
扩展信息。
msg
警告信息。

onCaptureFirstAudioFrame

onCaptureFirstAudioFrame

首帧音频采集完成的回调通知

onCaptureFirstVideoFrame

onCaptureFirstVideoFrame

首帧视频采集完成的回调通知

onMicrophoneVolumeUpdate:

onMicrophoneVolumeUpdate:
- (void)onMicrophoneVolumeUpdate:
(NSInteger)volume

麦克风采集音量值回调

参数
描述
volume
音量大小。
注意
调用 enableVolumeEvaluation 开启采集音量大小提示之后,会收到这个回调通知。

onPushStatusUpdate:message:extraInfo:

onPushStatusUpdate:message:extraInfo:
- (void)onPushStatusUpdate:
(V2TXLivePushStatus)status
message:
(NSString *)msg
extraInfo:
(NSDictionary *)extraInfo

推流器连接状态回调通知

参数
描述
extraInfo
扩展信息。
msg
连接状态信息。
status
推流器连接状态 V2TXLivePushStatus

onStatisticsUpdate:

onStatisticsUpdate:
- (void)onStatisticsUpdate:
(V2TXLivePusherStatistics *)statistics

直播推流器统计数据回调

参数
描述
statistics
推流器统计数据 V2TXLivePusherStatistics

onSnapshotComplete:

onSnapshotComplete:
- (void)onSnapshotComplete:
(nullable TXImage *)image

截图回调

参数
描述
image
已截取的视频画面。
注意
调用 snapshot 截图之后,会收到这个回调通知。

onProcessAudioFrame:

onProcessAudioFrame:
- (void) onProcessAudioFrame:
(V2TXLiveAudioFrame *)frame

本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调

当您设置完音频数据自定义回调之后,SDK 内部会把刚采集到并经过前处理、音效处理和混 BGM 之后的数据,在最终进行网络编码之前,以 PCM 格式的形式通过本接口回调给您。
此接口回调出的音频时间帧长固定为 0.02s,格式为 PCM 格式。
由时间帧长转化为字节帧长的公式为 采样率 × 时间帧长 × 声道数 × 采样点位宽
以 SDK 默认的音频录制格式 48000 采样率、单声道、16采样点位宽为例,字节帧长为 48000 × 0.02s × 1 × 16bit = 15360bit = 1920字节
参数
描述
frame
PCM 格式的音频数据帧。
注意
1. 请不要在此回调函数中做任何耗时操作,由于 SDK 每隔 20ms 就要处理一帧音频数据,如果您的处理时间超过 20ms,就会导致声音异常。
2. 此接口回调出的音频数据是可读写的,也就是说您可以在回调函数中同步修改音频数据,但请保证处理耗时。

onProcessVideoFrame:dstFrame:

onProcessVideoFrame:dstFrame:
- (void)onProcessVideoFrame:
(V2TXLiveVideoFrame * _Nonnull)srcFrame
dstFrame:
(V2TXLiveVideoFrame * _Nonnull)dstFrame

自定义视频处理回调

参数
描述
dstFrame
用于承载处理过的视频画面。
srcFrame
用于承载未处理的视频画面。
注意
需要调用 enableCustomVideoProcess 开启自定义视频处理,才会收到这个回调通知。
【情况一】美颜组件会产生新的纹理
如果您使用的美颜组件会在处理图像的过程中产生一帧全新的纹理(用于承载处理后的图像),那请您在回调函数中将 dstFrame.textureId 设置为新纹理的 ID。
`ObjectiveC
(void) onProcessVideoFrame:(V2TXLiveVideoFrame * _Nonnull)srcFrame dstFrame:(V2TXLiveVideoFrame * _Nonnull)dstFrame
{
GLuint dstTextureId = renderItemWithTexture(srcFrame.textureId, srcFrame.width, srcFrame.height);
dstFrame.textureId = dstTextureId;
return 0;
}
`
【情况二】美颜组件并不自身产生新纹理
如果您使用的第三方美颜模块并不生成新的纹理,而是需要您设置给该模块一个输入纹理和一个输出纹理,则可以考虑如下方案:
`ObjectiveC
(void) onProcessVideoFrame:(V2TXLiveVideoFrame * _Nonnull)srcFrame dstFrame:(V2TXLiveVideoFrame * _Nonnull)dstFrame
{
thirdparty_process(srcFrame.textureId, srcFrame.width, srcFrame.height, dstFrame.textureId);
return 0;
}
`

onGLContextDestroyed

onGLContextDestroyed

SDK 内部的 OpenGL 环境的销毁通知

onSetMixTranscodingConfig:message:

onSetMixTranscodingConfig:message:
- (void)onSetMixTranscodingConfig:
(V2TXLiveCode)code
message:
(NSString *)msg

设置云端的混流转码参数的回调,对应于 {@link setMixTranscodingConfig} 接口

参数
描述
code
0表示成功,其余值表示失败。
msg
具体错误原因。

onScreenCaptureStarted

onScreenCaptureStarted

当屏幕分享开始时,SDK 会通过此回调通知

onScreenCaptureStopped:

onScreenCaptureStopped:
- (void)onScreenCaptureStopped:
(int)reason

当屏幕分享停止时,SDK 会通过此回调通知

参数
描述
reason
停止原因
0:表示用户主动停止。
1:iOS 表示录屏被系统中断;Mac、Windows 表示屏幕分享窗口被关闭。
2:Windows 表示屏幕分享的显示屏状态变更(如接口被拔出、投影模式变更等);其他平台不抛出。

onLocalRecordBegin:storagePath:

onLocalRecordBegin:storagePath:
- (void)onLocalRecordBegin:
(NSInteger)errCode
storagePath:
(NSString *)storagePath

录制任务开始的事件回调

参数
描述
code
状态码。
0:录制任务启动成功。
-1:内部错误导致录制任务启动失败。
-2:文件后缀名有误(比如不支持的录制格式)。
-6:录制已经启动,需要先停止录制。
-7:录制文件已存在,需要先删除文件。
-8:录制目录无写入权限,请检查目录权限问题。
storagePath
录制的文件地址。

onLocalRecording:storagePath:

onLocalRecording:storagePath:
- (void)onLocalRecording:
(NSInteger)durationMs
storagePath:
(NSString *)storagePath

录制任务正在进行中的进展事件回调

参数
描述
durationMs
录制时长。
storagePath
录制的文件地址。

onLocalRecordComplete:storagePath:

onLocalRecordComplete:storagePath:
- (void)onLocalRecordComplete:
(NSInteger)errCode
storagePath:
(NSString *)storagePath

录制任务已经结束的事件回调

参数
描述
code
状态码。
0:结束录制任务成功。
-1:录制失败。
-2:切换分辨率或横竖屏导致录制结束。
-3:录制时间太短,或未采集到任何视频或音频数据,请检查录制时长,或是否已开启音、视频采集。
storagePath
录制的文件地址。