我正在try 使用REACT-Native-WebRTC创建一个视频呼叫应用程序,当呼叫开始并且我的手机连接到蓝牙耳机时,它总是使用我的Android手机麦克风而不是蓝牙耳机
有人知道如何解决这个问题吗?当我的蓝牙耳机连接时如何使用麦克风
我正在try 使用REACT-Native-WebRTC创建一个视频呼叫应用程序,当呼叫开始并且我的手机连接到蓝牙耳机时,它总是使用我的Android手机麦克风而不是蓝牙耳机
有人知道如何解决这个问题吗?当我的蓝牙耳机连接时如何使用麦克风
我也面临着这个问题,我添加了一个插件来管理音频路径,并在XML文件中为Android添加了一些权限
Android视频通话应用程序所需的权限
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="33" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="33" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.MICROPHONE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
当您的WebRTC流启动时调用此代码,它将 Select 音频路径
import HeadphoneDetection from 'react-native-headphone-detection';
HeadphoneDetection.isAudioDeviceConnected().then(async(e) => {
if (e.audioJack) {
console.log("i'm wired headset");
InCallManager.setForceSpeakerphoneOn(false);
InCallManager.chooseAudioRoute("WIRED_HEADSET");
InCallManager.start()
}
else if (e.bluetooth) {
console.log("i'm bluetooth headset",);
InCallManager.setForceSpeakerphoneOn(false);
InCallManager.chooseAudioRoute("BLUETOOTH");
InCallManager.start()
} else {
console.log("i'm others");
if (isHangUp) {
InCallManager.setForceSpeakerphoneOn(false);
InCallManager.stopRingback();
InCallManager.stopRingtone();
InCallManager.stop({ media: 'video', ringback: '_BUNDLE_' });
} else {
InCallManager.setForceSpeakerphoneOn(true);
InCallManager.stopRingback();
InCallManager.stopRingtone();
InCallManager.chooseAudioRoute("SPEAKER_PHONE");
InCallManager.start({ media: 'video' });
}
}
});