tencent cloud

All product documents
Mobile Live Video Broadcasting
V2TXLivePusherObserver
Last updated: 2025-04-09 15:18:03
V2TXLivePusherObserver
Last updated: 2025-04-09 15:18:03
Copyright (c) 2021 Tencent. All rights reserved.

Module: V2TXLivePusherObserver @ TXLiteAVSDK

Function: Tencent Cloud live pusher callback notification


Function

Callback notification for push streaming of Tencent Cloud Live.

Introduce

You can receive some push notifications from the V2TXLivePusher pusher, including the connection status of the pusher, callback of the first frame of audio and video, statistical data, warning and error messages, etc.

V2TXLivePusherObserver

V2TXLivePusherObserver

FuncList
DESC
Live pusher error notification, which is called back when the pusher encounters an error
Live pusher warning notification
Callback notification indicating that collection of the first audio frame is complete
Callback notification indicating that collection of the first video frame is complete
Microphone-collected volume callback
Callback notification of the pusher connection status
Live pusher statistics callback
Screenshot callback
Callback of created the OpenGL context in the SDK
Audio data captured by the local mic, pre-processed by the audio module, effect-processed and BGM-mixed
Custom video processing callback
Callback of destroying the OpenGL context in the SDK
Callback of setting On-Cloud MixTranscoding parameters, which corresponds to the setMixTranscodingConfig API
The SDK returns this callback when you call startScreenCapture and other APIs to start screen sharing.
The SDK returns this callback when you call stopScreenCapture to stop screen sharing
The SDK returns this callback when you call startLocalRecording to start local recording.
The SDK returns this callback when you call startLocalRecording to start local recording, which means recording task in progress.
The SDK returns this callback when you call stopLocalRecording to start local recording.
After calling enableVoiceActivityDetection to turn on voice activity detection, you will receive this callback notification when the anchor starts or stops speaking.

onError

onError
void onError
(int code

String msg

Bundle extraInfo)

Live pusher error notification, which is called back when the pusher encounters an error

Param
DESC
code
Error code V2TXLiveCode.
extraInfo
Extended information.
msg
Error message.

onWarning

onWarning
void onWarning
(int code

String msg

Bundle extraInfo)

Live pusher warning notification

Param
DESC
code
Warning code V2TXLiveCode.
extraInfo
Extended information.
msg
Warning message.

onCaptureFirstAudioFrame

onCaptureFirstAudioFrame

Callback notification indicating that collection of the first audio frame is complete

onCaptureFirstVideoFrame

onCaptureFirstVideoFrame

Callback notification indicating that collection of the first video frame is complete

onMicrophoneVolumeUpdate

onMicrophoneVolumeUpdate
void onMicrophoneVolumeUpdate
(int volume)

Microphone-collected volume callback

Param
DESC
volume
Current volume value for collection.
Note
This callback notification is received after enableVolumeEvaluation is called.

onPushStatusUpdate

onPushStatusUpdate
void onPushStatusUpdate
(V2TXLivePushStatus status

String msg

Bundle extraInfo)

Callback notification of the pusher connection status

Param
DESC
extraInfo
Extended information.
msg
Connection status message.
status
Pusher connection status V2TXLivePushStatus .

onStatisticsUpdate

onStatisticsUpdate
void onStatisticsUpdate
(V2TXLivePusherStatistics statistics)

Live pusher statistics callback

Param
DESC
statistics
Pusher statistics V2TXLivePusherStatistics .

onSnapshotComplete

onSnapshotComplete
void onSnapshotComplete
(Bitmap image)

Screenshot callback

Param
DESC
image
Captured video image.
Note
This callback notification will be received after calling V2TXLivePusher#snapshot .

onGLContextCreated

onGLContextCreated

Callback of created the OpenGL context in the SDK

onProcessAudioFrame

onProcessAudioFrame
void onProcessAudioFrame
(V2TXLiveDef.V2TXLiveAudioFrame frame)

Audio data captured by the local mic, pre-processed by the audio module, effect-processed and BGM-mixed

After you configure the callback of custom audio processing, the SDK will return via this callback the data captured, pre-processed (ANS, AEC, and AGC), effect-processed and BGM-mixed in PCM format, before it is submitted to the network module for encoding.
The audio data returned via this callback is in PCM format and has a fixed frame length (time) of 0.02s.
The formula to convert a frame length in seconds to one in bytes is sample rate * frame length in seconds * number of sound channels * audio bit depth.
Assume that the audio is recorded on a single channel with a sample rate of 48,000 Hz and audio bit depth of 16 bits, which are the default settings of TRTC. The frame length in bytes will be 48000 * 0.02s * 1 * 16 bits = 15360 bits = 1920 bytes.
Param
DESC
frame
Audio frames in PCM format
Note
1. Please avoid time-consuming operations in this callback function. The SDK processes an audio frame every 20 ms, so if your operation takes more than 20 ms, it will cause audio exceptions.
2. The audio data returned via this callback can be read and modified, but please keep the duration of your operation short.

onProcessVideoFrame

onProcessVideoFrame
int onProcessVideoFrame
(V2TXLiveVideoFrame srcFrame

V2TXLiveVideoFrame dstFrame)

Custom video processing callback

Param
DESC
dstFrame
For images after processing.
srcFrame
For images before processing.
Note
You will receive this callback only after you call enableCustomVideoProcess
to enable custom video processing.
Case 1: The beauty filter component generates new textures.
If the beauty filter component you use generates a new texture frame (for the processed image) during image processing, please set dstFrame.textureId to a new texture ID in the callback API.
@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();
}
Case 2: The third-party beauty filter component doesn’t generate new textures.
If the third-party beauty filter component you use does not generate new textures and you need to manually set an input texture and an output texture for the component, please consider the following scheme:
int onProcessVideoFrame(V2TXLiveVideoFrame srcFrame, V2TXLiveVideoFrame dstFrame) {
thirdparty_process(srcFrame.texture.textureId, srcFrame.width, srcFrame.height, dstFrame.texture.textureId);
return 0;
}

onGLContextDestroyed

onGLContextDestroyed

Callback of destroying the OpenGL context in the SDK

onSetMixTranscodingConfig

onSetMixTranscodingConfig
void onSetMixTranscodingConfig
(int code

String msg)

Callback of setting On-Cloud MixTranscoding parameters, which corresponds to the {@link setMixTranscodingConfig} API

Param
DESC
code
0: successful; other values: failed.
msg
Error message.

onScreenCaptureStarted

onScreenCaptureStarted

The SDK returns this callback when you call {@link startScreenCapture} and other APIs to start screen sharing.

onScreenCaptureStopped

onScreenCaptureStopped
void onScreenCaptureStopped
(int reason)

The SDK returns this callback when you call {@link stopScreenCapture} to stop screen sharing

Param
DESC
Reason
for stop.
0 : Screen capture stopped by user.
1 : On iOS platform means the screen recording is interrupted by the system; Mac, Windows means the screen sharing window is closed.
2 : On windows platform indicates that the display screen status of screen sharing is changed (such as the interface is pulled out, the projection mode is changed, etc.); other platforms do not throw.

onLocalRecordBegin

onLocalRecordBegin
void onLocalRecordBegin
(int code

String storagePath)

The SDK returns this callback when you call {@link startLocalRecording} to start local recording.

Param
DESC
code
status.
0: successful.
-1: failed.
-2: unsupported format.
-6: recording has been started. Stop recording first.
-7: recording file already exists and needs to be deleted.
-8: recording directory does not have the write permission. Please check the directory permission.
storagePath
recording filePath.

onLocalRecording

onLocalRecording
void onLocalRecording
(long durationMs

String storagePath)

The SDK returns this callback when you call {@link startLocalRecording} to start local recording, which means recording task in progress.

Param
DESC
durationMs
recording duration.
storagePath
recording filePath.

onLocalRecordComplete

onLocalRecordComplete
void onLocalRecordComplete
(int code

String storagePath)

The SDK returns this callback when you call {@link stopLocalRecording} to start local recording.

Param
DESC
code
status
0: successful.
-1: failed.
-2: Switching resolution or horizontal and vertical screen causes the recording to stop.
-3: recording duration is too short or no video or audio data is received. Check the recording duration or whether audio or video capture is enabled.
storagePath
recording filePath.

onVoiceActivityDetectionUpdate

onVoiceActivityDetectionUpdate
void onVoiceActivityDetectionUpdate
(boolean active)

After calling {@link enableVoiceActivityDetection} to turn on voice activity detection, you will receive this callback notification when the anchor starts or stops speaking.

Param
DESC
active
The voice starts or stops.
Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback

Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 available.

7x24 Phone Support
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon