Release notes
Updated
Shows Server Gateway's past releases.
This document tracks important changes and improvements to the Server Gateway.
v4.4.32
Released on June 6, 2025.
New features
This release adds the following new features:
Audio metadata support
This version adds the ability to send and receive audio metadata. In use-cases where you need to send auxiliary audio information, such as playback progress, call the sendAudioMetadata method to transmit metadata. Remote users receive this information through the onAudioMetadataReceived callback.
Get VAD information from raw audio data
Enable voice activity detection (VAD) for raw audio data using the new registerAudioFrameObserver method with the enableVad parameter. Access VAD status through the vadResult parameter in the onPlaybackAudioFrameBeforeMixing callback.
Receive encoded audio data
Access encoded audio data using these new interfaces:
registerAudioEncodedFrameObserver: Register an observer for encoded audio data.IAudioEncodedFrameObserver: Receive encoded audio data through theonEncodedAudioFrameReceivedcallback.
Set custom color spaces for external video
Use the new colorSpace attribute in ExternalVideoFrame to specify custom color spaces for externally captured video data.
Manage connection domains
Control connection domains using the new domainLimit parameter in AgoraServiceConfig.
Improvements
This release includes the following improvements:
Improved audio and video data sending interfaces
Method names are now more descriptive:
sendAudioPcmDatareplaces the deprecatedsendinAgoraAudioPcmDataSender.sendEncodedAudioFramereplacessendinAgoraAudioEncodedFrameSender.sendEncodedVideoImagereplacessendinAgoraVideoEncodedImageSender.sendVideoFramereplacessendinAgoraVideoFrameSender.
Send stream messages with byte arrays
Use the new sendStreamMessage overload to send byte array data without specifying a length parameter. The message parameter now accepts byte[] instead of String.
Issues fixed
This release resolves the following issues:
- Fixed
alphaBufferandmetadataBufferhandling inVideoFrame. - Fixed potential crashes in the
destroymethod. - Fixed memory leaks and multi-threading issues for improved stability.
v4.4.30
Released on December 11, 2024.
Compatibility changes
Log encryption behavior changes
For security and performance reasons, as of this release, the SDK encrypts logs and no longer supports printing plaintext logs via the console.
Refer to the following solutions for different needs:
- If you need to know the API call status, check the API logs and print the SDK callback logs yourself.
- For any other special requirements, contact technical support and provide the corresponding encrypted logs.
New features
Maven integration method
This release supports integrating the SDK through Maven. After creating a Maven project, open the pom.xml file and replace its contents with the following:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>agora-rtc-linux-java</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>io.agora.rtc</groupId>
<artifactId>linux-java-sdk</artifactId>
<version>4.4.30</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<createDependencyReducedPom>true</createDependencyReducedPom>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>Audio send buffer settings
In use-cases such as AI interaction, the frequency of sending audio frames may be uneven. If the SDK sends to the Agora server according to the actual sending frequency, the receiver may experience issues such as stuttering or frame loss. To optimize audio transmission performance, this release adds methods to set the audio send buffer in the AgoraLocalAudioTrack class:
setMaxBufferedAudioFrameNumber: Sets the maximum capacity of the audio send buffer.clearSenderBuffer: Clears the current audio send buffer, applicable to interrupt audio in human-machine dialogue use-cases.setSendDelayMs: Sets the minimum data duration allowed to be sent by the audio send buffer, applicable to precise control of audio transmission delay.
Audio labels
This release introduces the audio labeling capability (AudioLabel). By adding audio labels, you can intuitively obtain audio information such as user audio energy, fundamental frequency, and voice type, making it convenient for post-processing. Contact technical support to enable and use this feature.
22050 Hz audio send sample rate
This release supports a 22050 Hz audio send sample rate, and you can set the sample rate when calling the AgoraAudioPcmDataSender.send method to send raw audio data.
SDK global custom parameters
This release adds the getAgoraParameter method in the AgoraService class. The difference between this method and the getAgoraParameter method in the AgoraRtcConn class is as follows:
AgoraService.getAgoraParameteris effective globally for the SDK.AgoraRtcConn.getAgoraParameteris only effective for the current connection.
Improvements
This release includes the following improvements:
- Reduces CPU consumption in multi-channel use-cases.
- Optimizes memory management mechanism for audio frame callbacks
onPlaybackAudioFrameBeforeMixing,onRecordAudioFrame,onPlaybackAudioFrame, andonMixedAudioFrame, improving the efficiency and stability ofAudioFrameprocessing.
Fixed issues
This release fixed the following issues:
- Issues caused by a null
channelIdpointer in theonPlaybackAudioFrameBeforeMixingcallback. - Occasional crashes in the
onRemoteAudioTrackStatistics,onUserAudioTrackSubscribed,onUserAudioTrackStateChanged,onUserVideoTrackSubscribed,onUserVideoTrackStateChanged, oronRemoteVideoTrackStatisticscallbacks.
