【问题标题】:audio not send react-native-webrtc音频不发送 react-native-webrtc
【发布时间】:2017-01-05 12:33:11
【问题描述】:

在最后的 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
  );
});

当“video”对于 android 为 true 并且对于 ios 为 video 为{optional: [{sourceId: videoSourceId}] } 时,音频会被传输,但是,我必须请求相机权限,而我不想这样做。当我做“video”:false时,我的应用程序可以接收到音频;但是,它没有被发送。

【问题讨论】:

  • 你找到问题了吗?
  • 您找到解决方案了吗?

标签: react-native webrtc


【解决方案1】:

首先检查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.com/react-native-webrtc/react-native-incall-manager

【讨论】:

    【解决方案2】:

    正如@Anupam Chaplot刚才所说的权限应该正确设置

    在那之后,现在让开 react-native-webrtc 也支持纯音频流。

    想象一下接收远程音频流,没有视频,只有纯音频流 您所要做的就是确保您的PeerConnection 状态已连接 就像您对视频流所做的那样。 react-native-webrtc 将为您播放音频。这样您就不必像处理视频流那样调用 RTCView 之类的东西了。

    您可以只使用 PeerConnection 而不要将流的 URL 设置为 RTCView

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多