本文介绍如何设置音频采集和播放、音乐文件播放、耳返播放的音量。
Agora RTC SDK 支持对 SDK 采集和播放的音频音量进行调整,以满足用户实际应用场景。例如,进行双人通话时,需要静音远端用户,可以通过调整播放音量的方法将音量设置为 0。
下图展示了调整音量的工作流程。
播放是指音频信号从发送端进入到接收端,然后使用播放设备进行播放的过程。
耳返是指播放设备采集的音频的过程。
采集是指音频信号由采集设备采集,然后传输到发送端的过程。
在实现调整通话音量前,请确保已在你的项目中实现基本的实时音视频功能。详见开始视频通话或开始互动直播。
调用 adjustPlaybackSignalVolume
或 adjustUserPlaybackSignalVolume
调整音频播放信号的音量。
// Swift
// 设置本地播放的所有远端用户音量
agoraKit.adjustPlaybackSignalVolume(50)
// 设置本地播放的指定远端用户的音量
agoraKit.adjustUserPlaybackSignalVolume(uid, volume: 50)
// Objective-C
// 设置本地播放的所有远端用户音量
[agoraKit adjustPlaybackSignalVolume: 50];
// 设置本地播放的指定远端用户的音量
[agoraKit adjustUserPlaybackSignalVolume: uid, volume: 50];
在音频采集、混音、播放的整个过程中,你都可以调用 setInEarMonitoringVolume
调整耳返的音量。
// Swift
// 开启耳返功能。
agoraKit.enableInearMonitoring(true)
// 调整耳返音量
agoraKit.setInEarMonitoringVolume(50)
// Objective-C
// 开启耳返功能。
[agoraKit enableInEarMonitoring(true)];
// 调整耳返音量
[agoraKit setInEarMonitoringVolume: 50];
在音频采集、混音、播放的整个过程中,你都可以通过 reportAudioVolumeIndicationOfSpeakers
回调获取频道内瞬时音量最高的三个用户(即说话者)的用户 ID 及他们的音量。返回的 uid
为 0 表示本地用户。
enableAudioVolumeIndication
方法才能收到该回调。 // Swift
// 获取瞬时说话音量最高的三个用户(即说话者)的用户 ID、他们的音量及本地用户是否在说话
func rtcEngine(_ engine: AgoraRtcEngineKit, reportAudioVolumeIndicationOfSpeakers speakers:
[AgoraRtcAudioVolumeInfo], totalVolume: Int) {
}
// Objective-C
// 获取瞬时说话音量最高的三个用户(即说话者)的用户 ID、他们的音量及本地用户是否在说话
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine reportAudioVolumeIndicationOfSpeakers:(NSArray<AgoraRtcAudioVolumeInfo*> *_Nonnull) speakers totalVolume:(NSInteger)totalVolume {
}
调用 adjustRecordingSignalVolume
调整音频采集信号的音量。
// Swift
// 调整采集信号音量
agoraKit.adjustRecordingSignalVolume(50)
// Objective-C
// 调整采集信号音量
[agoraKit adjustRecordingSignalVolume: 50];
本节提供在实现调整通话音量时可能需要的文档。
我们在 GitHub 上提供已实现调整采集、播放、耳返音量的开源示例项目 JoinChannelAudio。你可以下载体验并参考源代码。
实现调整通话音量过程中,你还可以参考如下文档: