自学内容网 自学内容网

腾讯云视立方V2TXLivePusherObserver

Copyright (c) 2021 Tencent. All rights reserved.

Module: V2TXLivePusherObserver @ TXLiteAVSDK

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

功能

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

介绍

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

V2TXLivePusherObserver

V2TXLivePusherObserver

函数列表

描述

onError:message:extraInfo:

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

onWarning:message:extraInfo:

直播推流器警告通知

onCaptureFirstAudioFrame

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

onCaptureFirstVideoFrame

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

onMicrophoneVolumeUpdate:

麦克风采集音量值回调

onPushStatusUpdate:message:extraInfo:

推流器连接状态回调通知

onStatisticsUpdate:

直播推流器统计数据回调

onSnapshotComplete:

截图回调

onProcessAudioFrame:

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

onProcessVideoFrame:dstFrame:

自定义视频处理回调

onGLContextDestroyed

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

onSetMixTranscodingConfig:message:

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

onScreenCaptureStarted

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

onScreenCaptureStopped:

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

onLocalRecordBegin:storagePath:

录制任务开始的事件回调

onLocalRecording:storagePath:

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

onLocalRecordComplete:storagePath:

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

onVoiceActivityDetectionUpdate:

调用 enableVoiceActivityDetection 开启人声检测之后,当主播开始或结束说话时,会收到这个回调通知。

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

录制的文件地址。

onVoiceActivityDetectionUpdate:

onVoiceActivityDetectionUpdate:

- (void)onVoiceActivityDetectionUpdate:

(BOOL)active

调用 {@link enableVoiceActivityDetection} 开启人声检测之后,当主播开始或结束说话时,会收到这个回调通知。

参数

描述

active

人声开始或停止。


原文地址:https://blog.csdn.net/szqcloud/article/details/143024289

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!