腾讯云直播SDKV2TXLivePusherObserver_音视频解决方案_同尘科技
Copyright (c) 2021 Tencent. All rights reserved.
Module: V2TXLivePusherObserver @ TXLiteAVSDK
Function: 腾讯云直播推流的回调通知
功能
腾讯云直播的推流回调通知。
介绍
可以接收 V2TXLivePusher 推流器的一些推流通知,包括推流器连接状态、音视频首帧回调、统计数据、警告和错误信息等。
V2TXLivePusherObserver
V2TXLivePusherObserver
函数列表 | 描述 |
onError | 直播推流器错误通知,推流器出现错误时,会回调该通知 |
onWarning | 直播推流器警告通知 |
onCaptureFirstAudioFrame | 首帧音频采集完成的回调通知 |
onCaptureFirstVideoFrame | 首帧视频采集完成的回调通知 |
onMicrophoneVolumeUpdate | 麦克风采集音量值回调 |
onPushStatusUpdate | 推流器连接状态回调通知 |
onStatisticsUpdate | 直播推流器统计数据回调 |
onSnapshotComplete | 截图回调 |
onGLContextCreated | SDK 内部的 OpenGL 环境的创建通知 |
onProcessAudioFrame | 本地采集并经过音频模块前处理、音效处理和混 BGM 后的音频数据回调 |
onProcessVideoFrame | 自定义视频处理回调 |
onGLContextDestroyed | SDK 内部的 OpenGL 环境的销毁通知 |
onSetMixTranscodingConfig | 设置云端的混流转码参数的回调,对应于 setMixTranscodingConfig 接口 |
onScreenCaptureStarted | 当屏幕分享开始时,SDK 会通过此回调通知 |
onScreenCaptureStopped | 当屏幕分享停止时,SDK 会通过此回调通知 |
onLocalRecordBegin | 录制任务开始的事件回调 |
onLocalRecording | 录制任务正在进行中的进展事件回调 |
onLocalRecordComplete | 录制任务已经结束的事件回调 |
onError
onError
void onError | (int code |
| String msg |
| Bundle extraInfo) |
直播推流器错误通知,推流器出现错误时,会回调该通知
参数 | 描述 |
code | 错误码 V2TXLiveCode。 |
extraInfo | 扩展信息。 |
msg | 错误信息。 |
onWarning
onWarning
void onWarning | (int code |
| String msg |
| Bundle extraInfo) |
直播推流器警告通知
参数 | 描述 |
code | 警告码 V2TXLiveCode。 |
extraInfo | 扩展信息。 |
msg | 警告信息。 |
onCaptureFirstAudioFrame
onCaptureFirstAudioFrame
首帧音频采集完成的回调通知
onCaptureFirstVideoFrame
onCaptureFirstVideoFrame
首帧视频采集完成的回调通知
onMicrophoneVolumeUpdate
onMicrophoneVolumeUpdate
void onMicrophoneVolumeUpdate | (int volume) |
麦克风采集音量值回调
参数 | 描述 |
volume | 音量大小。 |
注意调用 enableVolumeEvaluation 开启采集音量大小提示之后,会收到这个回调通知。
onPushStatusUpdate
onPushStatusUpdate
void onPushStatusUpdate | (V2TXLivePushStatus status |
| String msg |
| Bundle extraInfo) |
推流器连接状态回调通知
参数 | 描述 |
extraInfo | 扩展信息。 |
msg | 连接状态信息。 |
status | 推流器连接状态 V2TXLivePushStatus。 |
onStatisticsUpdate
onStatisticsUpdate
void onStatisticsUpdate | (V2TXLivePusherStatistics statistics) |
直播推流器统计数据回调
参数 | 描述 |
statistics | 推流器统计数据 V2TXLivePusherStatistics |
onSnapshotComplete
onSnapshotComplete
void onSnapshotComplete | (Bitmap image) |
截图回调
参数 | 描述 |
image | 已截取的视频画面。 |
注意调用 snapshot 截图之后,会收到这个回调通知。
onGLContextCreated
onGLContextCreated
SDK 内部的 OpenGL 环境的创建通知
onProcessAudioFrame
onProcessAudioFrame
void onProcessAudioFrame | (V2TXLiveDef.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
onProcessVideoFrame
int onProcessVideoFrame | (V2TXLiveVideoFrame srcFrame |
| V2TXLiveVideoFrame dstFrame) |
自定义视频处理回调
参数 | 描述 |
dstFrame | 用于承载处理过的视频画面。 |
srcFrame | 用于承载未处理的视频画面。 |
注意需要调用 enableCustomVideoProcess 开启自定义视频处理,才会收到这个回调通知。【情况一】美颜组件会产生新的纹理如果您使用的美颜组件会在处理图像的过程中产生一帧全新的纹理(用于承载处理后的图像),那请您在回调函数中将 dstFrame.textureId 设置为新纹理的 ID。
`java@Overridepublic void onGLContextCreated() {mFURenderer.onSurfaceCreated();mFURenderer.setUseTexAsync(true);}@Overridepublic int onProcessVideoFrame(V2TXLiveVideoFrame srcFrame, V2TXLiveVideoFrame dstFrame) {dstFrame.texture.textureId = mFURenderer.onDrawFrameSingleInput(srcFrame.texture.textureId, srcFrame.width, srcFrame.height);return 0;}@Overridepublic 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 | 录制的文件地址。 |
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?