在最后的prepareWebrtc函数中,我有以下代码。
MediaStreamTrack.getSources(sourceInfos => {
var isFront = camera_front
console.log(sourceInfos);
let videoSourceId;
for (const i = 0; i < sourceInfos.length; i++) {
const sourceInfo = sourceInfos[i];
if(sourceInfo.kind == "video" &&
sourceInfo.facing == (isFront ? "front" : "back")) {
videoSourceId = sourceInfo.id;
}
}
console.log("videoSourceId:" + videoSourceId)
getUserMedia({
"audio": true,
"video":false
}, (stream) => {
streamsDone(handleId, jsep, media, callbacks, stream)
},
// TODO: add error handling
() => undefined
);
});
当安卓系统中的 "视频 "为真,而当视频为假时{optional: [{sourceId: videoSourceId}] }
对于ios来说,音频可以被传输,但是,我必须请求相机权限,我不想这样做。当我做 "video":false时,音频可以被我的应用程序接收,但是,它没有被发送。
首先检查androidmanifest.xml中的权限。下面的权限应该在那里。
<uses-permission android:name="android.permission.MICROPHONE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
接下来检查你要发送的候选数据,它应该包含以下内容 "sdpMid": "audio"
现在如果还是没有音频,那可能是因为react-native-webrtc在耳机上播放音频,将其改为扬声器使用 https:/github.comreact-native-webrtcreact-native-incall-manager。