在Android

时间:2018-02-23 09:39:35

标签: webrtc mediastream

我使用libjingle:11139 @ aar库在Android平台上构建聊天应用程序。

许多stackoverflow线程解释了从RTCPeerConnection动态添加/删除媒体流的问题,但所有这些线程似乎都与JavaScript有关。我找不到任何详细解释Java / android应用程序中执行的使用/顺序的线程。

我已经在许多地方读过,在添加媒体流之后,必须向对等方提出关于添加流的新sdp。但是当创建新的sdp offer时,当前的对等连接是LOST。我在启动sdp商品的对等体中获得了onIceConnectionChange(CLOSED)(在添加媒体流之后)。 这是预期的行为吗?

另一个观察是,在向对等连接添加媒体流之后,在刚刚添加了流的对等体中接收到RenogotiationNeeded()通知。在此通知中,如果发送了createOffer(),则peerConnection将丢失。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

最后,当我回到WebRTC时,我找到了解决方案,在这里您可以禁用仅对等方的流媒体播放本地视频: 在 PeerConnectionClient 类中(我在Java-Android项目中讲),在下面编写一个函数,并在调用视频时调用它:

 //Hieu: disabled receive peer video for aircraft streaming only
  public void setMyVideoEnabled(final boolean enable) {
    executor.execute(() -> {
      renderVideo = enable;
      if (remoteVideoTrack != null) {
        remoteVideoTrack.setEnabled(renderVideo);
      }
    });
  }

我还没有尝试过音频,但是我想我们可以和这个功能一样来做。 例如,我以WebRTC代码示例在按钮开关摄像机上调用该功能: CallActivity.java

@Override
  public void onCameraSwitch() {
    if (peerConnectionClient != null) {
      //peerConnectionClient.switchCamera();
      peerConnectionClient.setMyVideoEnabled(false);
    }
  }

Google示例的链接: https://webrtc.org/native-code/android/ 路径: src / examples / androidapp 玩得开心:)