音频设备管理
更新时间: 2024/09/18 16:26:13
在音频场景中,您可能需要根据实际的场地情况选择采用音频的采集和播放设备,例如在室内场景中选用听筒进行音频播放。NERTC SDK 支持自由切换音频设备。
注意事项
- 语音通话音频播放模式默认为扬声器模式。
- 在 iPad 设备上,音频播放模式只能使用扬声器模式,无法设置音频播放为听筒模式。
- 耳机连接时,自动使用耳机播放。此时即使设置音频播放设备为扬声器或听筒,仍旧使用耳机播放,耳机断开连接时,恢复音频播放设备的配置。
实现方法
参考如下步骤,在您的项目中切换音频路由:
-
在加入房间成功后调用
getLoudspeakerMode:(bool *)enabled
判断当前是听筒还是扬声器模式。 -
调用
setLoudspeakerMode:(bool)enable
接口进行切换。- true:扬声器。
- false:听筒。
-
通过监听
onNERtcEngineAudioDeviceRoutingDidChange
delegate 回调来监听音频路由切换事件。
示例代码
objc // 判断当前音频路由器。
bool enabled = false;
[self.engine getLoudspeakerMode:(&enabled)];
// 设置音频路由。
bool enableSpeakerMode = true;
int result = [self.engine setLoudspeakerMode: enableSpeakerMode];
- (void)onNERtcEngineAudioDeviceRoutingDidChange:(NERtcAudioOutputRouting)routing {
NSString *currentAudioDevice;
switch (routing) {
case kNERtcAudioOutputRoutingHeadset:
currentAudioDevice = @"耳机";
break;
case kNERtcAudioOutputRoutingEarpiece:
currentAudioDevice = @"耳返";
break;
case kNERtcAudioOutputRoutingLoudspeaker:
currentAudioDevice = @"扬声器";
break;
case kNERtcAudioOutputRoutingBluetooth:
currentAudioDevice = @"蓝牙耳机";
default:
currentAudioDevice = @"Default";
break;
}
}
API参考
方法 | 描述 |
---|---|
setPlayoutDeviceMute | 设置音频播放设备的状态 |
getPlayoutDeviceMute | 获取音频播放设备的状态 |
setRecordDeviceMute | 设置录音设备的状态 |
getRecordDeviceMute | 获取录音设备的状态 |
getLoudspeakerMode | 获取目前是否使用扬声器模式 |
setLoudspeakerMode | 设置音频播放扬声器模式 |
音频设备回调:
事件 | 描述 |
---|---|
onNERtcEngineAudioDeviceRoutingDidChange | 音频输出设备改变回调 |
此文档是否对你有帮助?