腾讯云直播SDKV2TXLivePusherObserver_音视频解决方案_同尘科技

直播SDK 2年前 (2023-08-31) 浏览 96

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: 录制任务已经结束的事件回调

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 录制的文件地址。

对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?