You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native(Expo非托管工作流)iOS端麦克风输入自动路由至输出设备的问题求助

React Native(Expo非托管工作流)iOS端麦克风输入自动路由至输出设备的问题求助

大家好,我目前正在用Expo非托管工作流开发一款React Native实时语音通话应用,用户之间的音频传输功能是正常的,但在真实iOS设备上碰到了一个挺棘手的问题:麦克风捕捉到的我的声音,会自动被路由到输出设备——没戴耳机时会从手机外放出来,戴耳机的话就直接从耳机里听到自己的声音,这显然不是语音通话该有的正常表现。

我现在是用react-native-webrtc来捕获设备媒体流的,核心代码如下:

const stream = await mediaDevices.getUserMedia({ audio: true, video: false, });

我之前查过相关内容,看到有人说可以通过自定义原生模块,把音频会话设置为playAndRecord来解决这个问题。于是我按照Expo的官方文档步骤创建了自定义原生模块,在里面添加了这些iOS原生代码:

let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord, mode: .voiceChat, options: [.allowBluetooth])
try session.setActive(true)

但很遗憾,不管我怎么测试,麦克风的输入还是会自动路由到输出系统,这个问题完全没有改善。我想向大家求助:

  • 有没有具体的方案可以修复这个问题?
  • 这种麦克风输入自动回传到输出的情况,是互联网语音通话的默认行为吗?
  • 还有什么其他可能的原因或者调试方向可以推荐给我?

真的非常感谢大家的帮助和建议!

内容来源于stack exchange

火山引擎 最新活动