发版说明
音频模块不兼容 (iOS)
声网 Unreal SDK 的音频模块与 Unreal Engine 5.3、5.4 的 AudioMixer 模块不兼容。如果你使用 Unreal Engine 5.3 或 5.4,需要在项目的 /Config/IOS/IOSEngine.ini
文件中添加以下代码,关闭 Unreal Engine 的 AudioMixer 模块,以避免冲突。
[Audio]
AudioMixerModuleName=
macOS 15 Sequoia Beta 系统问题 (macOS)
当 App 路径(以及 App 名称)中包含中文字符时,编译后的 Metal shader library
中可能不包含任何方法,导致 App 无法正常运行。
v4.4.0
该版本于 2024 年 8 月 29 日发布。
该版本引擎实例的创建和销毁操作改为使用 Get
和 Release
方法,取代了之前的 createAgoraRtcEngine
和 release
,这一改动简化了实例管理。详情如下:
-
创建引擎实例:调用
Get
创建一个IRtcEngine
实例并返回一个指向AgoraUERtcEngine
的指针,你可以直接通过该指针调用IRtcEngine
下的方法。C++// 以调用 joinChannel 加入频道为例
AgoraUERtcEngine::Get()->joinChannel(TCHAR_TO_UTF8(*Token), TCHAR_TO_UTF8(*ChannelName), 0, ChannelMediaOptions); -
销毁引擎实例:调用
Get
创建实例后,如无需再使用该实例,务必调用Release
以销毁引擎实例并释放相关资源。C++AgoraUERtcEngine::Release();
该版本新增 AI 调音器功能,可以实现类似物理声卡对音质和音色的提升。你可以通过调用 enableVoiceAITuner
方法并传入 VOICE_AI_TUNER_TYPE
枚举中支持的音效类型来启用 AI 调音器功能,实现大叔音、萝莉音、烟嗓歌声等声音效果。
为满足 Apple 对于 App 发布的安全合规要求,SDK 自该版本起新增隐私清单文件 PrivacyInfo.xcprivacy
,其中包含 SDK 中需要访问或使用用户数据的 API 调用说明和 SDK 采集的数据类型说明。
如果你需要将集成该版本之前的 SDK 版本的 App 发布到苹果应用商店,则需要在 Xcode 工程中手动添加 PrivacyInfo.xcprivacy
文件。详见如何在 App 中增加隐私清单?
该版本针对 Android 摄像头采集新增以下功能:
-
支持第三个和第四个摄像头视频流的采集和发布。
VIDEO_SOURCE_TYPE
中的VIDEO_SOURCE_CAMERA_THIRD
(11) 和VIDEO_SOURCE_CAMERA_FOURTH
(12) 枚举新增对 Android 的支持,分别用于指定视频源为第三个和第四个摄像头。此项改动允许你在调用startCameraCapture
开启摄像头采集时,指定最多 4 路摄像头采集的视频流。ChannelMediaOptions
中的publishThirdCameraTrack
和publishFourthCameraTrack
成员新增对 Android 的支持。调用joinChannel
[2/2] 加入频道时,将这两个成员参数设置为true
即可在频道内发布第三个和第四个摄像头采集的视频流。
-
支持通过摄像头 ID 指定摄像头。
在
CameraCapturerConfiguration
中新增cameraId
成员。对于多摄像头的设备,cameraDirection
无法识别或访问全部可用摄像头。这种情况下,你通过系统 API 获取摄像头 ID,再调用startCameraCapture
并传入cameraId
指定摄像头。
该版本新增 selectMultiAudioTrack
方法,支持分别设置本地播放和发送至远端的音轨。在 K 歌等场景下,主播可以根据需求选择在本地播放一路音轨(如原声),然后发送另一路音轨至远端(如伴奏)以提升听众体验。 使用该功能前,需要通过 openWithMediaSource
打开媒体文件,并通过 MediaSource
中新增的 enableMultiAudioTrack
成员来开启音轨控制。
为方便接入声网云市场提供的第三方视频审核服务,该版本有以下改动:
CONTENT_INSPECT_TYPE
中新增CONTENT_INSPECT_IMAGE_MODERATION
枚举值,代表使用声网云市场视频审核插件对视频截图并上传。ContentInspectConfig
中新增的serverConfig
可选参数用于云市场视频审核相关服务端配置,配置后可同时接入多个云市场审核插件并实现灵活控制插件开关等功能,详情请联系技术支持。
此外,该版本还新增了 enableContentInspectEx
方法,支持同时对多条视频流截图并上传。
自该版本起,SDK 支持 ID3D11Texture2D 类型的视频格式,提升了游戏场景中视频帧的渲染效果。你可以在调用 pushVideoFrame
方法将外部原始视频帧推送到 SDK 时,设置 format
为 VIDEO_TEXTURE_ID3D11TEXTURE2D
;并通过设置 textureSliceIndex
属性,来确定要使用的 ID3D11Texture2D 纹理对象。
该版本新增通配 Token。生成 Token 时,在用户 ID 不为 0 的情况下,声网支持你将频道名设为通配符,从而生成可以加入任何频道的通配 Token。在需要频繁切换频道及多频道场景下,使用通配 Token 可以避免 Token 的重复配置,有助于提升开发效率,减少你的 Token 服务端的压力。详见使用通配 Token。
声网 4.x RTC SDK 均支持使用通配 Token。
该版本新增 preloadChannel
和 preloadChannelWithUserAccount
方法,支持角色为观众的用户在加入频道前预先加载一个或多个频道。该方法调用成功后可以减少观众加入频道的时间,从而缩短观众听到主播首帧音频以及看到首帧画面的耗时,提升观众端的音视频体验。
在同时预加载多个频道时,为避免观众在切换不同频道时需多次申请 Token 从而导致切换频道时间增长,因此声网推荐使用通配 Token 来减少你的业务服务端获取 Token 导致的耗时,进一步加快切换频道的速度,详见使用通配 Token。
该版本在 ChannelMediaOptions
中新增下列成员,支持你发布第三个、第四个摄像头和屏幕采集到的视频流:
publishThirdCameraTrack
:发布第三个摄像头采集的视频。publishFourthCameraTrack
:发布第四个摄像头采集的视频。publishThirdScreenTrack
:发布第三个屏幕采集的视频。publishFourthScreenTrack
:发布第四个屏幕采集的视频。
目前 SDK 支持在同一时间、同一 RtcConnection
中发布多路音频流、一路视频流。
如需引用其他头文件,你可以将它们统一添加到 AgoraHeaderBase.h
中,以简化项目中头文件的管理、便于后续维护。
该版本将跨频道连麦时媒体流转发的目标频道增加至 6 个,在调用 startOrUpdateChannelMediaRelay
和 startOrUpdateChannelMediaRelayEx
时,你可以指定最多 6 个目标频道。
在 Unreal Engine 5.3 和 5.4 版本中,当你在项目的 /Source/xxx.Target.cs
文件添加以下代码以解决 iOS 内存分配问题时,可能会导致 iOS 编译符号缺失。为解决这一问题,该版本在 UnrealMemory.cpp
文件中添加了 3 个与标准库相关的函数定义 (StdMalloc
、StdRealloc
和 StdFree
),确保在使用标准内存分配器时能够正确处理内存管理需求。(iOS)
if (Target.Platform == UnrealTargetPlatform.IOS)
{
bOverrideBuildEnvironment = true;
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
}
v4.2.1
该版本于 2023 年 11 月 16 日发布,该版本为声网 RTC Unreal SDK 的首个版本。
该 SDK 由声网为使用 Unreal 的开发者而设计,旨在为 Unreal Engine 用户提供简单且用户友好的实时互动解决方案。
SDK 提供了一套强大的 C++ API,使开发者可以轻松构建具备实时互动功能的游戏或者 App,并可以借助 Unreal Engine 强大的图形引擎功能,为 App 添加各种视觉效果和交互性能,为用户提供更加沉浸式的体验。
你可以参考以下文档集成 SDK,实现相应的实时音视频功能:
声网提供了开源的示例项目,你可以前往下载并体验。
如果你已经集成了 3.x 版本的 SDK、想要升级至该版本,请参考迁移指南了解升级。