Copyright (c) 2021 Tencent. All rights reserved.
Module: V2TXLivePusherObserver @ TXLiteAVSDK
Function: 腾讯云直播推流的回调通知
功能
腾讯云直播的推流回调通知。
介绍
V2TXLivePusherObserver
V2TXLivePusherObserver
函数列表 | 描述 |
直播推流器错误通知,推流器出现错误时,会回调该通知 | |
直播推流器警告通知 | |
首帧音频采集完成的回调通知 | |
首帧视频采集完成的回调通知 | |
麦克风采集音量值回调 | |
推流器连接状态回调通知 | |
直播推流器统计数据回调 | |
截图回调 | |
SDK 内部的 OpenGL 环境的创建通知 | |
本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调 | |
自定义视频处理回调 | |
SDK 内部的 OpenGL 环境的销毁通知 | |
当屏幕分享开始时,SDK 会通过此回调通知 | |
当屏幕分享停止时,SDK 会通过此回调通知 | |
录制任务开始的事件回调 | |
录制任务正在进行中的进展事件回调 | |
录制任务已经结束的事件回调 | |
onError
onError
void onError | (int code |
| String msg |
| Bundle extraInfo) |
直播推流器错误通知,推流器出现错误时,会回调该通知
参数 | 描述 |
code | |
extraInfo | 扩展信息。 |
msg | 错误信息。 |
onWarning
onWarning
void onWarning | (int code |
| String msg |
| Bundle extraInfo) |
直播推流器警告通知
参数 | 描述 |
code | |
extraInfo | 扩展信息。 |
msg | 警告信息。 |
onCaptureFirstAudioFrame
onCaptureFirstAudioFrame
首帧音频采集完成的回调通知
onCaptureFirstVideoFrame
onCaptureFirstVideoFrame
首帧视频采集完成的回调通知
onMicrophoneVolumeUpdate
onMicrophoneVolumeUpdate
void onMicrophoneVolumeUpdate | (int volume) |
onPushStatusUpdate
onPushStatusUpdate
void onPushStatusUpdate | |
| String msg |
| Bundle extraInfo) |
推流器连接状态回调通知
参数 | 描述 |
extraInfo | 扩展信息。 |
msg | 连接状态信息。 |
status |
onStatisticsUpdate
onStatisticsUpdate
void onStatisticsUpdate |
直播推流器统计数据回调
参数 | 描述 |
statistics |
onSnapshotComplete
onSnapshotComplete
void onSnapshotComplete | (Bitmap image) |
onGLContextCreated
onGLContextCreated
SDK 内部的 OpenGL 环境的创建通知
onProcessAudioFrame
onProcessAudioFrame
void onProcessAudioFrame |
本地采集并经过音频模块前处理、音效处理和混 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
onProcessVideoFrame
int onProcessVideoFrame | |
|
自定义视频处理回调
参数 | 描述 |
dstFrame | 用于承载处理过的视频画面。 |
srcFrame | 用于承载未处理的视频画面。 |
注意
【情况一】美颜组件会产生新的纹理
如果您使用的美颜组件会在处理图像的过程中产生一帧全新的纹理(用于承载处理后的图像),那请您在回调函数中将 dstFrame.textureId 设置为新纹理的 ID。
`java@Override
public void onGLContextCreated() {
mFURenderer.onSurfaceCreated();
mFURenderer.setUseTexAsync(true);
}
@Override
public int onProcessVideoFrame(V2TXLiveVideoFrame srcFrame, V2TXLiveVideoFrame dstFrame) {
dstFrame.texture.textureId = mFURenderer.onDrawFrameSingleInput(
srcFrame.texture.textureId, srcFrame.width, srcFrame.height);
return 0;
}
@Override
public void onGLContextDestroyed() {
mFURenderer.onSurfaceDestroyed();
}
`【情况二】美颜组件并不自身产生新纹理
如果您使用的第三方美颜模块并不生成新的纹理,而是需要您设置给该模块一个输入纹理和一个输出纹理,则可以考虑如下方案:
`javaint onProcessVideoFrame(V2TXLiveVideoFrame srcFrame, V2TXLiveVideoFrame dstFrame) {
thirdparty_process(srcFrame.texture.textureId, srcFrame.width, srcFrame.height, dstFrame.texture.textureId);
return 0;
}
`onGLContextDestroyed
onGLContextDestroyed
SDK 内部的 OpenGL 环境的销毁通知
onSetMixTranscodingConfig
onSetMixTranscodingConfig
void onSetMixTranscodingConfig | (int code |
| String 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
onLocalRecordBegin
void onLocalRecordBegin | (int code |
| String storagePath) |
录制任务开始的事件回调
参数 | 描述 |
code | 状态码。 0:录制任务启动成功。 -1:内部错误导致录制任务启动失败。 -2:文件后缀名有误(比如不支持的录制格式)。 -6:录制已经启动,需要先停止录制。 -7:录制文件已存在,需要先删除文件。 -8:录制目录无写入权限,请检查目录权限问题。 |
storagePath | 录制的文件地址。 |
onLocalRecording
onLocalRecording
void onLocalRecording | (long durationMs |
| String storagePath) |
录制任务正在进行中的进展事件回调
参数 | 描述 |
durationMs | 录制时长。 |
storagePath | 录制的文件地址。 |
onLocalRecordComplete
onLocalRecordComplete
void onLocalRecordComplete | (int code |
| String storagePath) |
录制任务已经结束的事件回调
参数 | 描述 |
code | 状态码。 0:结束录制任务成功。 -1:录制失败。 -2:切换分辨率或横竖屏导致录制结束。 -3:录制时间太短,或未采集到任何视频或音频数据,请检查录制时长,或是否已开启音、视频采集。 |
storagePath | 录制的文件地址。 |
onVoiceActivityDetectionUpdate
onVoiceActivityDetectionUpdate
void onVoiceActivityDetectionUpdate | (boolean active) |
调用 {@link enableVoiceActivityDetection} 开启人声检测之后,当主播开始或结束说话时,会收到这个回调通知。
参数 | 描述 |
active | 人声开始或停止。 |