【问题标题】:Web RTC - One to One call,no error but, no remote video streamingWeb RTC - 一对一通话,没有错误,但没有远程视频流
【发布时间】:2017-06-30 18:49:15
【问题描述】:

我正在使用 Kurento Media 服务器进行一对一通话。

在浏览器中调用没有问题。

但我想在android中实现这个。

我正在使用这个,https://github.com/MaxMaes/WebRTCTest

既然有人说,这个项目还没有完成,我正在努力完成这个。

我正在遵循 WebRTC 的所有步骤。

能够连接到在服务器中运行的 kurento 一对一通话应用程序。流程是这样的

  1. 在浏览器中创建甲方。
  2. 乙方在安卓应用中创建。
  3. A 呼叫 B。
  4. 现在,在收到“来电”消息时,呼叫被接受。
  5. pc.createOffer 被调用。
  6. onCreateSuccess,pc.setLocalDescription 完成。 sdpoffer 被发送到 B。
  7. 同时,接收“onIceCandidate”,pc.addIceCandidate 完成。
  8. ICEGatheringState = 完成
  9. A 接收 callResponse,并使用 sdpAnswer 发送“startcommunication”。
  10. pc.setRemoteDescription,来自 sdpAnswer 已完成。
  11. onAddStream 已调用。将远程渲染器添加到 UI。
  12. 但没有流式传输。
  13. B 正在从 A 接收“iceCandidate”。对此有什么可做的吗?

两边都看不到远程视频但是能看到本地视频

而且我没有收到任何错误。

【问题讨论】:

    标签: android webrtc kurento


    【解决方案1】:

    在 onAddRemoteStream 改变

    VideoRendererGui.update(remoteRender, REMOTE_X, REMOTE_Y,   REMOTE_WIDTH,REMOTE_HEIGHT, scalingType)

    scalingType 后多加一个参数

     VideoRendererGui.update(remoteRender, REMOTE_X, REMOTE_Y,   REMOTE_WIDTH,REMOTE_HEIGHT, scalingType,true)

    希望这会对你有所帮助。

    【讨论】:

    • 我试过这个,更新 libjingle 库。但即使那样也没有改善。相同的。感谢您的回复。
    • @sowmiyaksr 你找到解决办法了吗?
    • @richa shah:我开始使用“openvidu”库。 Openvidu 建立在“Kurento”之上。之后就很顺利了。谢谢
    • 好的,将 VideoRendererGui 转换为 openvidu 容易吗?因为当我尝试使用 VideoRendererGui opengl 进行安全渲染时遇到了更多麻烦?
    【解决方案2】:

    你有这样的吗?

    onAddRemoteStream(MediaStream remoteStream){ remoteStream.videoTracks.get(0).addRenderer(new VideoRenderer(remoteRender)); }

    【讨论】:

    • 是的。 @Override public void onAddRemoteStream(MediaStream remoteStream) { remoteStream.videoTracks.get(0).addRenderer(new VideoRenderer(remoteRender)); VideoRendererGui.update(remoteRender, REMOTE_X, REMOTE_Y, REMOTE_WIDTH, REMOTE_HEIGHT, scalingType); VideoRendererGui.update(localRender, LOCAL_X_CONNECTED, LOCAL_Y_CONNECTED, LOCAL_WIDTH_CONNECTED, LOCAL_HEIGHT_CONNECTED, scalingType); }
    • 当您在 android 上创建对等点时,您已将 localMediaStream 链接到对等点连接? PS。确保在创建优惠之前已链接媒体流。 this.pc = factory.createPeerConnection(iceServers, sdpMediaConstraints, this); this.pc.addStream(localMediaStream); 所以@Override public void onAddStream(MediaStream mediaStream){ mListner.onAddRemoteStream(mediaStream); } 被调用。然后,如果您有视频轨道。只需运行上面的行,它们是正确的。
    【解决方案3】:

    在某些情况下,如果不发送视频,您将无法接收视频。

    解决方法:https://stackoverflow.com/a/51883182/571410

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      相关资源
      最近更新 更多