本页面提供声网视频 SDK 更多版本的下载链接和发版说明。为保证开发体验,声网强烈建议你使用官方主线版本。
本节提供 SDK 更多版本的下载链接并介绍该版本基于哪个官方主线版开发。
平台 | SDK 下载链接 | 版本基线 |
---|---|---|
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 |
本节提供所有 SDK 更多版本的发版说明。
该版本基于 3.7.0 版开发,于 2022 年 6 月 6 日发布 Android、iOS、macOS、Windows 平台。
该版本基于 3.6.2 版开发,于 2022 年 5 月 13 日发布 Android、iOS、macOS、Windows 平台。
1. 屏幕共享(Windows)
屏幕共享时你可以通过 excludeWindowList
屏蔽指定窗口。该版本修改了在多显卡设备上的窗口屏蔽行为:
ERR_NOT_SUPPORTED_MUTI_GPU_EXCLUDE_WINDOW(1736)
,表明不支持在多显卡设备上使用窗口屏蔽功能。2. 设置描边(macOS)
自该版本起,你可以通过 ScreenCaptureParameters
中的 enableHighLight
、highLightWidth
、highLightColor
属性对共享的窗口或屏幕设置描边和描边的宽度、颜色。
3. 远端首帧出图回调
该版本在 IChannelEventHandler
类中新增 onFirstRemoteVideoFrame
回调,以在多频道场景下向本地用户报告远端用户的首帧视频已渲染。你还可以从该回调中获取远端用户 ID、视频宽度 (px)、高度 (px)、首帧出图时间 (ms)。
1. 超分辨率(Beta 功能)
该版本废弃 enableRemoteSuperResolution
方法,并新增同名方法,用于开启超分辨率功能,即对接收到的某个远端用户的视频宽和高均扩大为 2 倍像素。
相比废弃方法,新方法中增加 mode
参数。该参数可设为如下值:
MANUAL_MODE(0)
: 表示对你指定的远端用户进行超分辨率处理。AUTO_MODE
: 表示对频道内最大的渲染窗口所对应的远端用户进行超分辨率处理。2. 录制音视频
自该版本起,成功调用 startRecording
开启本地音视频流录制后,音频属性在录制过程中发生变化时,SDK 会持续录制并生成单个 MP4 录制文件;而在之前的版本中,SDK 会中断录制,并报告 onRecorderStateChanged(RECORDER_STATE_ERROR, RECORDER_ERROR_CONFIG_CHANGED)
。
3. 远端视频出错原因
该版本在 AgoraVideoRemoteStateReason
中新增 AgoraVideoRemoteStateReasonRemoteSDKInBackGround(10)
。当远端用户使用 iOS 应用且应用处于后台时,SDK 会向本地用户报告该原因。此时,本地用户看到远端用户视频卡住。
该版本修复了如下问题:
enumerateVideoDevices
方法获取的虚拟摄像头的设备 ID 异常,且使用非 SDK 接口并传入该设备 ID 时,无法打开该虚拟摄像头。(Windows)takeSnapshot
方法和 enableContentInspect
方法未能支持使用 MedialO 或 Push 方式自采集的 Texture 格式视频。(Android)startAudioMixing
后播放音乐文件后,再依次调用 enableLocalAudio(false)
和 enableLocalAudio(true)
关闭、开启本地语音采集时,远端用户听到的音乐声出现延迟。startAudioMixing
方法播放采样率为 22050 Hz 的音乐文件时,本地用户及远端用户听到的音频失真并伴有电流声。muteLocalVideoStream(true)
或 enableLocalVideo(false)
停止发送视频流后,本地用户加入频道。本地用户未收到 onRemoteVideoStateChanged(0,5)
回调。muteLocalAudioStream(true)
或 enableLocalAudio(false)
停止发送音频流后,本地用户加入频道。本地用户未收到 onRemoteAudioStateChanged(0,5)
回调。enableLoopbackRecording(true)
播放多媒体课件,并将不带麦克风的耳机插入设备后,远端用户听不到多媒体课件的声音。onRemoteAudioStateChanged(2,6)
回调。该版本基于 3.6.2 版开发,于 2022 年 3 月 4 日发布 macOS 平台。
修复了因部分动态库错误地强引用 Metal 库导致 SDK 在低于 macOS 10.11 的系统上的崩溃。
该版本基于 3.6.1.1 版开发,于 2022 年 2 月 22 日发布 Android、iOS、macOS、Windows 平台。
该版本基于 3.5.2 版开发,于 2022 年 2 月 22 日发布 Android、iOS、macOS、Windows 平台,于 2022 年 5 月 17 日发布 Electron 平台。
1. 视频增强
继基础美颜后,声网新增支持更多视频增强功能:
setVideoDenoiserOptions
方法设置开/关视频降噪和视频降噪效果选项。setLowLightEnhanceOptions
方法设置开/关暗光增强和暗光增强效果选项。setColorEnhanceOptions
方法设置开/关色彩增强和色彩增强效果选项。libagora_video_process_extension.so
AgoraVideoProcessExtension.xcframework
libagora_video_process_extension.dll
2. 耳返(Windows)
该版本扩展了耳返控制功能适用的平台,继 Android 和 iOS 平台之后,新增支持 Windows 平台。在 Windows 平台,你可以调用如下 API 控制耳返:
enableInEarMonitoring
: 开启/关闭耳返功能。该功能默认关闭。如需打开,请调用 enableInEarMonitoring(true)
。setInEarMonitoringVolume
: 设置耳返音量,取值范围为 [0,100]。默认值为 100。3. 远端首帧出图回调
该版本在 IChannel
类中新增 onFirstRemoteVideoFrame
回调,以在多频道场景下向本地用户报告远端用户的首帧视频已渲染。你还可以从该回调中获取远端用户 ID、视频宽度 (px)、高度 (px)、首帧出图时间 (ms)。
1. 音频录制
该版本扩展了 startAudioRecording
的功能,支持设置录制双声道和更高的音质:
AudioRecordingConfiguration
中新增 recordingChannel
,允许用户设置录制的音频声道为单声道或双声道。因为实际录制的音频声道与采集的音频声道有关,集成方案也会影响最终录制的音频声道,所以如需通过 startAudioRecording
录制立体声,请联系技术支持协助。AudioRecordingConfiguration.recordingQuality
中新增 AUDIO_RECORDING_QUALITY_ULTRA_HIGH(3)
,允许用户设置录制的音质为超高音质。超高音质是 recordingQuality
中提供的最高音质。当采样率为 32000 Hz,以超高音质录制 10 分钟的 AAC 音频文件时,文件大小约为 7.5 M。2. 其他改进
该版本进行了如下改进:
该版本修复了如下问题:
AgoraVideoProcessExtension.xcframework
动态库后,应用上传 Apple App Store 报错。(iOS)onNetworkQuality
回调报告的网络状态为断开。(Android)takeSnapshot
,生成的截图清晰度会随着调用次数增加而下降。(Android,iOS)getScreenCaptureSourcesWithThumbSize
获取当前所有可共享的窗口时,窗口异常显示为白屏。(macOS)Non-public API usage
错误导致应用无法上架 Apple App Store。(iOS)updateScreenCaptureParameters
更新屏幕共享参数配置时,windowFocus
不生效。(macOS,Windows)remoteVideoStateChanged
回调。(iOS)startAudioMixing
无法播放以 ipod-library://
开头的本地 iTunes 音乐文件。(iOS)getScreenCaptureSourcesWithThumbSize
(Objective-C) 或 getScreenCaptureSources
(C++) 获取 sourceId
并进行屏幕共享,偶现共享失败、实际共享的屏幕与 sourceId
不一致、共享时观众看到的鼠标位置与实际不同的问题。(macOS)getScreenCaptureSourcesWithThumbSize
(Objective-C) 返回的 AgoraThumbImageBuffer
对象或调用 getScreenCaptureSources
(C++) 返回的 ThumbImageBuffer
对象为非预期的 RGBA 格式。(macOS)QUALITY_TYPE
与真实网络情况不符。enableVirtualBackground
开启虚拟背景并通过 source
字段设置一张图片高度为奇数值的背景图片时,偶现崩溃。(Windows)enableVirtualBackground
开启虚拟背景并通过 source
字段设置一张 JPG 图片为背景后,关闭或更新虚拟背景时,此前设置的 JPG 图片均无法删除。(Windows)AgoraAudioScenarioChatRoomGaming
后,加入频道会中断第三方音乐播放器播放的音乐。(iOS)startAudioMixing
成功播放音乐后,多次调用 setAudioMixingPosition
设置音乐文件的播放位置,音乐文件大概率会从头播放。(iOS)addVideoWatermark
添加水印,水印颜色与原色不同。(iOS)DhcpInfo
。(Android)该版本基于 3.5.1 版开发,于 2021 年 11 月 25 日发布 Android、iOS、macOS、Windows 平台。
该版本基于 3.4.5 版开发,于 2021 年 11 月 22 日发布 Android、iOS、macOS、Windows 平台,于 2022 年 1 月 10 日发布 Electron 平台。
1. 暂停/恢复跨频道媒体流转发
为方便跨频道连麦中的主播快速暂停或恢复媒体流转发,该版本新增如下方法和和状态码:
pauseAllChannelMediaRelay
:暂停向所有目标频道转发媒体流。resumeAllChannelMediaRelay
:恢复向所有目标频道转发媒体流。RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS(12)
:成功暂停向目标频道转发媒体流。RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED(13)
:暂停向目标频道转发媒体流失败。RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS(14)
:成功恢复向目标频道转发媒体流。RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED(15)
:恢复向目标频道转发媒体流失败。成功调用 pauseAllChannelMediaRelay
或 resumeAllChannelMediaRelay
方法后,SDK 会触发 onChannelMediaRelayEvent
回调,并在回调中报告是否成功暂停或恢复媒体流转发。
2. 获取音频文件信息
为获取任意音频文件的信息,该版本废弃 getAudioMixingDuration
并新增 getAudioFileInfo
替代。加入频道后,你可以调用 getAudioFileInfo
并通过 onRequestAudioFileInfo
回调获取指定音频文件的时长等信息。
1. 蓝牙规范和音量类型(Android/iOS)
为改善使用蓝牙耳机时的音质,该版本优化了 SDK 选择蓝牙规范和音量类型的逻辑:
音频应用场景 | 通信场景下的用户或直播场景下的主播 | 直播场景下的观众 |
---|---|---|
DEFAULT |
通话音量 | 媒体音量 |
CHATROOM_GAMING |
通话音量 | 通话音量 |
GAME_STREAMING |
通话音量(Android) 媒体音量(iOS) | 媒体音量 |
CHATROOM_ENTERTAINMENT |
通话音量 | 通话音量 |
EDUCATION |
通话音量 | 媒体音量 |
SHOWROOM |
通话音量 | 媒体音量 |
MEETING |
通话音量(Android) 媒体音量(iOS) | 媒体音量 |
2. 人脸检测(Android/iOS)
为提升人脸检测结果的准确性,自该版本起,SDK 在检测到人脸消失后会立即触发 onFacePositionChanged
回调。
3. 性能优化
通过优化 FEC(Forward Error Correction)编解码,小幅降低视频场景下的 CPU 占用率。
4. 视频体验优化
降低弱网环境下首帧出图时间。
该版本修复了如下问题:
-1017
。(Android)AgoraAudioScenarioChatRoomGaming
后,加入频道会中断第三方音乐播放器播放的音乐。(iOS)excludeWindowList
不生效。(macOS)setAudioProfile(5,3)
后调用 adjustRecordingSignalVolume(0)
,远端用户仍能听到本地用户的声音。(Android)setVideoEncoderConfiguration
时,SDK 反复重启视频采集,导致本地预览和发送的视频出现闪烁。(iOS)facePositionDidChangedWith
回调报告的 AgoraFacePositionInfo
类中的 x
属性为负数。(iOS)setEnableSpeakerphone
时,主线程出现 1~2 秒的卡顿。(Android)onAudioRouteChanged
回调,音频路由无法正常切换。(Android)setEnableSpeakerphone
后,无法通过设备的音量按钮调整音量大小。(Android)enableDualStreamMode(false)
后,当该用户从使用 setVideoSource
自采集 SCREEN
类型的外部视频切换到 SDK 采集,本地会发送视频双流。startAudioDeviceLoopbackTest
开始音频设备回路测试,onAudioVolumeIndication
回调报告的 AudioVolumeInfo
数组内容错误。(Windows)adjustRecordingSignalVolume(0)
失效。(Android)MUSIC_HIGH_QUALITY_STEREO(5)
的用户和使用其他音频属性的用户通话时,后者大概率会听到滋啦杂声。(Android)setAudioSessionOperationRestriction
后,偶现的远端音频无声。(iOS)AgoraAudioScenarioChatRoomGaming
的音频场景下,频道内用户将角色由观众切换为主播的瞬间,该用户听滋啦杂音。(iOS)该版本基于 3.4.7 版开发,于 2021 年 9 月 16 日发布 Android、iOS、macOS、Windows 平台。
该版本修复了如下问题:
adjustRecordingSignalVolume(0)
失效。(Android)setEnableSpeakerphone
时,主线程出现 1~2 秒的卡顿。(Android)startScreenCaptureByScreenRect
并将 screenRect
参数中的各属性赋值 0
进行屏幕共享时,出现崩溃。(Windows)该版本基于 3.4.6 版开发,于 2021 年 8 月 3 日发布 Android、iOS、macOS、Windows 平台。
AgoraRtcEngineKit
强引用 AgoraRtcEngineDelegate
的情况下存在内存堆积。如果你设置了 AgoraRtcEngineKit
强引用 AgoraRtcEngineDelegate
,声网推荐你升级到 3.4.7 版本。(iOS,macOS)改进
该版本优化了高丢包和高抖动网络环境下的用户体验。
问题修复
该版本修复了如下问题:
AgoraRtcEngineKit
强引用 AgoraRtcEngineDelegate
,导致 AgoraRtcEngineDelegate
对象只有在 AgoraRtcEngineKit
销毁时才释放且产生内存堆积。(iOS,macOS)pauseAudioMixing
,之后再调用 startAudioMixing
播放音频文件,播放失败。(iOS)startAudioMixing
时,远端用户听到的人声和伴奏有轻微的不同步。AgoraReachability
命名冲突。(iOS,macOS)