This page provides download links and release notes for more versions of the Agora Voice SDK. To ensure a trouble-free development experience, Agora strongly recommends that you use official mainline versions.
This section provides links to download more versions of the SDK and describes which official mainline version it is based on.
Platform | SDK download link | Version baseline |
---|---|---|
Android | v3.7.0.2 | v3.7.0.1 |
iOS | v3.7.0.2 | v3.7.0 |
macOS | v3.7.0.2 | v3.7.0 |
Windows | v3.7.0.2 | v3.7.0 |
This section provides release notes for more versions of the SDK.
v3.7.0.2 was developed from v3.7.0 and released on June 6, 2022, for Android, iOS, macOS, and Windows.
v3.6.3 was developed from v3.5.2 and released on May 13, 2022, for Android, iOS, macOS, and Windows.
Audio recording
As of this release, after successfully calling startRecording
to start the local audio recording, the SDK continues the recording and generates a single MP4 recording file when the audio profile changes during the recording, whereas with earlier versions, the SDK would stop the recording and report onRecorderStateChanged(RECORDER_STATE_ERROR, RECORDER_ERROR_CONFIG_CHANGED)
.
This release fixed the following issues:
enableLocalAudio(false)
and enableLocalAudio(true)
to disable and enable local audio capture after successfully calling startAudioMixing
to play a music file.startAudioMixing
to play a music file with the sample rate of 22,050 Hz, the local and remote users heard distorted audio with buzzing noises.muteLocalAudioStream(true)
or enableLocalAudio(false)
to stop sending the audio stream, the local user did not receive the onRemoteAudioStateChanged(0,5)
callback.enableLoopbackRecording(true)
on some Dell devices to play a multimedia file and connected a headset without a microphone to the device, the remote user could not hear the multimedia file.onRemoteAudioStateChanged(2,6)
callback after disconnecting from and reconnecting to a network even though the remote user had not changed the audio state.v3.6.2.1 was developed from v3.6.2 and released on March 4, 2022 for macOS.
This release fixed a crash of the SDK on systems earlier than macOS 10.11. This crash was due to strong references by some dynamic libraries to the Metal library.
v3.6.2 was developed from v3.6.1.1 and released on February 22, 2022 for Android, iOS, macOS, and Windows.
v3.5.3 was developed from v3.5.2 and released on February 22, 2022 for Android, iOS, macOS, and Windows.
In-ear monitoring (Windows)
This release extends the applicable platforms of in-ear monitoring from Android and iOS to Android, iOS, and Windows. On Windows, you can call the following APIs to control in-ear monitoring:
enableInEarMonitoring
: Enables or disables in-ear monitoring. This function is disabled by default. To enable the function, call enableInEarMonitoring(true)
.setInEarMonitoringVolume
: Sets the volume of the in-ear monitor, in the range of [0,100]. The default value is 100.1. Audio recording
This release extends startAudioRecording
with support for setting recording with dual channels and higher audio quality.
recordingChannel
to AudioRecordingConfiguration
, it enables you to set the recorded audio channel to be mono or dual. Because the actual recorded audio channel is related to the captured audio channel and the integration scheme affects the final recorded audio channel, contact technical support for assistance with stereo recording using startAudioRecording
.AUDIO_RECORDING_QUALITY_ULTRA_HIGH(3)
to AudioRecordingConfiguration.recordingQuality
, it enables you to set the recorded audio quality to ultra-high. Ultra-high quality is the highest quality available in recordingQuality
. When you record a 10-minute AAC audio file at a sample rate of 32,000 Hz and ultra-high quality, the file size is approximately 7.5 MB.2. Other improvements
This release provides the following improvements:
This release fixed the following issues:
onNetworkQuality
callback reported the network state as disconnected. (Android)Non-public API usage
error. (iOS)startAudioMixing
method call failed to play local iTunes music files starting with ipod-library://
. (iOS)QUALITY_TYPE
received by the local user did not match the actual network condition.AgoraAudioScenarioChatRoomGaming
, joining a channel could interrupt the music played by the third-party music player. (iOS)setAudioMixingPosition
multiple times to set the playback position of the music file after you called startAudioMixing
to successfully play music, the music file would most likely be played from the beginning. (iOS)DhcpInfo
occurred too frequently. (Android)v3.5.2 was developed from v3.5.1 and released on November 25, 2021 for Android, iOS, macOS, and Windows.
v3.4.11 was developed from v3.4.5 and released on November 22, 2021 for Android, iOS, macOS, and Windows. v3.4.11 for Electron was released on January 10, 2022.
1. Pausing and resuming the media stream relay across channels
In order to enable the host to quickly pause or resume a cross-channel media stream relay, this release adds the following methods and event code:
pauseAllChannelMediaRelay
: Pauses the media stream relay to all destination channels.resumeAllChannelMediaRelay
: Resumes the media stream relay to all destination channels.RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS(12)
: The SDK successfully pauses relaying the media stream to destination channels.RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED(13)
: The SDK fails to pause relaying the media stream to destination channels.RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS(14)
: The SDK successfully resumes relaying the media stream to destination channels.RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED(15)
: The SDK fails to resume relaying the media stream to destination channels.After a successful method call of pauseAllChannelMediaRelay
or resumeAllChannelMediaRelay
, the SDK triggers the onChannelMediaRelayEvent
callback to report whether the media stream relay is successfully paused or resumed.
2. Getting audio file information
To get the information of any audio file, this release deprecates getAudioMixingDuration
and adds getAudioFileInfo
instead. After joining a channel, you can call getAudioFileInfo
and get information such as duration for the specified audio file in onRequestAudioFileInfo
.
Bluetooth profiles and volume types (Android/iOS)
To improve audio quality when a user uses a Bluetooth headset, this release optimizes the logic for selecting Bluetooth profiles and volume types.
Audio scenario | User in the communication profile/Host in the interactive live streaming profile | Audience in the interactive live streaming profile |
---|---|---|
DEFAULT |
In-call volume | Media volume |
CHATROOM_GAMING |
In-call volume | In-call volume |
GAME_STREAMING |
In-call volume (Android)Media volume (iOS) | Media volume |
CHATROOM_ENTERTAINMENT |
In-call volume | In-call volume |
EDUCATION |
In-call volume | Media volume |
SHOWROOM |
In-call volume | Media volume |
MEETING |
In-call volume (Android)Media volume (iOS) | Media volume |
This release fixed the following issues:
-1017
when a user plugged and unplugged the headset. (Android)AgoraAudioScenarioChatRoomGaming
, joining a channel could interrupt the music played by the third-party music player. (iOS)excludeWindowList
did not work. (macOS)adjustRecordingSignalVolume(0)
after calling setAudioProfile(5,3)
, remotes users could still hear the local user's audio. (Android)setEnableSpeakerphone
method call.setEnableSpeakerphone
. (Android)startAudioDeviceLoopbackTest
to start the audio device loopback test after joining and then immediately leaving a channel, the content of the AudioVolumeInfo
array reported by the onAudioVolumeIndication
callback was incorrect. (Windows)adjustRecordingSignalVolume(0)
method call occasionally failed. (Android)MUSIC_HIGH_QUALITY_STEREO(5)
talked to a user with another audio profile, the latter was likely to hear a zipping noise. (Android)setAudioSessionOperationRestriction
. (iOS)AgoraAudioScenarioChatRoomGaming
audio scenario, the moment a user in the channel switched the role from AgoraClientRoleAudience
to AgoraClientRoleBroadcaster
, that user heard a zipping noise. (iOS)v3.4.8 was developed from v3.4.7 and was released on September 16, 2021 for Android, iOS, macOS, and Windows.
This release fixed the following issues:
adjustRecordingSignalVolume(0)
method call failed occasionally. (Android)setEnableSpeakerphone
method call. (Android)v3.4.7 was developed from v3.4.6 and was released on August 2, 2021 for Android, iOS, macOS, and Windows.
AgoraRtcEngineKit
strongly references AgoraRtcEngineDelegate
. If you set the strong reference to AgoraRtcEngineDelegate
by AgoraRtcEngineKit
, Agora recommends that you upgrade the SDK to v3.4.7. (iOS, macOS) This release improves the user experience under network conditions with high packet loss and high jitter.
This release fixed the following issues:
AgoraRtcEngineDelegate
by AgoraRtcEngineKit
, the AgoraRtcEngineDelegate
object was released only when AgoraRtcEngineKit
was destroyed, which caused a memory leak. (iOS, macOS)pauseAudioMixing
was called before playing an audio file, and then startAudioMixing
was called to play the audio file, playback failed. (iOS)startAudioMixing
on some Android devices.AgoraReachability
class between the Agora RTC SDK and Agora RTM SDK. (iOS, macOS)