Audio Settings

本文档主要介绍如何使用 RTC Room Engine SDK 实现 音频设置相关功能。

前提条件

在使用RTC Room Engine SDK 提供的音频设置相关功能之前,您需要先完成 登录 SDK,并确保自己已在一个直播间当中。

使用指引

开启/关闭本地麦克风

iOS
Android
您可以分别通过调用openLocalMicrophonecloseLocalMicrophone两个接口,来开启或关闭您本地的麦克风。
在调用openLocalMicrophone开启麦克风时,需要传入一个TUIAudioQuality 类型的参数 quality以设置音频编码质量,TUIAudioQuality包含以下类型,您可以根据您的业务需求进行选择:
枚举值类型
含义
speech
人声模式。单声道;音频裸码率:18kbps;适合语音通话为主的场景。
default
默认模式。单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。
music
音乐模式。双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如在线K歌、音乐直播等。
您可以分别通过调用openLocalMicrophonecloseLocalMicrophone两个接口,来开启或关闭您本地的麦克风。
在调用openLocalMicrophone开启麦克风时,需要传入一个AudioQuality 类型的参数 quality以设置音频编码质量,AudioQuality包含以下类型,您可以根据您的业务需求进行选择:
枚举值类型
含义
SPEECH
人声模式。单声道;音频裸码率:18kbps;适合语音通话为主的场景。
DEFAULT
默认模式。单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。
MUSIC
音乐模式。双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如在线K歌、音乐直播等。
下面以默认模式为例,提供了开启本地麦克风和关闭本地麦克风的示例代码。
iOS
Android
import RTCRoomEngine

let roomEngine = TUIRoomEngine.sharedInstance()

// 开启本地麦克风
roomEngine.openLocalMicrophone(.default) {
// 开启麦克风成功
} onError: { code, message in
// 开启麦克风失败
}

// 关闭本地麦克风
roomEngine.closeLocalMicrophone()
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();
// 开启本地麦克风
roomEngine.openLocalMicrophone(TUIRoomDefine.AudioQuality.DEFAULT, new TUIRoomDefine.ActionCallback() {
@Override
public void onSuccess() {
// 开启麦克风成功
}
@Override
public void onError(TUICommonDefine.Error error, String message) {
// 开启麦克风失败
}
});
// 关闭本地麦克风
roomEngine.closeLocalMicrophone();

更新本地音频编码质量

iOS
Android
更新本地音频编码质量时,需要传入的参数类型TUIAudioQuality 与上文中提到的相同。下面以默认模式为例,调用updateAudioQuality接口更新本地音频的编码质量:
import RTCRoomEngine

let audioQuality: TUIAudioQuality = .default
TUIRoomEngine.sharedInstance().updateAudioQuality(audioQuality)
更新本地音频编码质量时,需要传入的参数类型AudioQuality 与上文中提到的相同。下面以默认模式为例,调用updateAudioQuality接口更新本地音频的编码质量:
TUIRoomDefine.AudioQuality audioQuality = TUIRoomDefine.AudioQuality.DEFAULT;
TUIRoomEngine.sharedInstance().updateAudioQuality(audioQuality);

暂停/恢复发布本地音频流

当您在直播间内时,您可能需要暂停/恢复发布您的本地音频流,您可以通过调用以下接口来实现:
iOS
Android
import RTCRoomEngine

let roomEngine = TUIRoomEngine.sharedInstance()

// 暂停发布本地音频流
roomEngine.muteLocalAudio()

// 恢复发布本地音频流
roomEngine.unmuteLocalAudio() {
// 恢复发布成功
} onError: { code, message in
// 恢复发布失败
}
TUIRoomEngine roomEngine = TUIRoomEngine.sharedInstance();

// 暂停发布本地音频流
roomEngine.muteLocalAudio();

// 恢复发布本地音频流
roomEngine.unmuteLocalAudio(new TUIRoomDefine.ActionCallback() {
@Override
public void onSuccess() {
// 恢复发布成功
}

@Override
public void onError(TUICommonDefine.Error error, String message) {
// 恢复发布失败
}
});
说明:
在房间内,若您已打开您的麦克风,调用如上接口暂停/恢复发布本地的音频流后,SDK 会通过 TUIRoomObserver 中的 onUserAudioStateChanged 回调通知房间内用户。