【发布时间】:2020-08-17 21:24:43
【问题描述】:
我正在制作一个通话应用程序,用户可能会或可能不会使用耳机/耳机。在来电视频通话中,我使用react-native-incall-manager 打开扬声器/允许扬声器电话。基本的InCallManager.start({ media: 'video' }); 方法有效,并允许检测插入的新音频设备(例如耳机),如果发生这种情况,插入的耳机和麦克风会按预期工作。
问题出现在通话开始前耳机已经插入设备的情况下,因为此时调用了InCallManager.setSpeakerphoneOn(true);方法。 InCallManager.start({ media: 'video' }); 不考虑已经连接的设备并且耳机不工作,即使插入了耳机,普通扬声器也可以。
react-native-incall-manager 建议使用 react-native 中的 DeviceEventEmitter 来检测连接的音频设备的变化等原生事件,但这个模块是 deprecated。
这里推荐使用NativeEventEmitter,但这看起来很复杂,似乎需要编写原生Java(Android)模块并结合使用。
如何在 React Native 中检测 Android 中连接的音频设备的变化?
【问题讨论】:
标签: android react-native