调用 onAddStream() 时远程视频无法加载

The*_*ras 5 android webrtc kurento

我正在实现一个webRTCandroid 应用程序,与我通信的服务器是信令服务器(通过 websockets)和 kurento 媒体服务器。

时间顺序为:

  • 客户端订阅服务器
  • 每个客户发送的sdpOffer
  • iceCandidate每个客户端都发送了将要创建的所有内容
  • 信令服务器发送iceCandidate给每个客户端
  • sdpAnswers 信令服务器将来自 kurento 媒体服务器的信令发送给客户端

我的移动客户端订阅服务器并发送他们的sdpOffersice trickle信令服务器从kurento媒体服务器发回后sdpAnswers

因此,我收到了startCommunication消息,并且远程描述已通过sdpAnswerskurento 媒体服务器成功设置。我已经检查了我所有的sdp和ice包,它们都符合预期,并且所有webRTC相关的回调都成功。

设置remoteDescriptionpeerConnection

onAddStream()调用并且我得到了videoTrack。但是视频没有渲染..

我的 onAddStream:

 override fun onAddStream(p0: MediaStream?) {

            super.onAddStream(p0)
            p0?.videoTracks?.get(0)?.addSink(remote_view)

            Log.d(TAG, "on add stream" + p0?.videoTracks?.size )
            Log.d(TAG,App.rtcClient.peerConnection?.iceConnectionState().toString())
            Log.d(TAG,App.rtcClient.peerConnection?.iceGatheringState().toString())
        }
Run Code Online (Sandbox Code Playgroud)

远程视图的初始化:

   fun initSurfaceView(view: SurfaceViewRenderer) = view.run {
      setMirror(true)
      setEnableHardwareScaler(true)
      init(rootEglBase.eglBaseContext, null)
   }

  ....

  App.rtcClient.initSurfaceView(remote_view)
Run Code Online (Sandbox Code Playgroud)

远程视图的xml:

 <org.webrtc.SurfaceViewRenderer
    android:id="@+id/remote_view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/local_view" />
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,并且我的本地流正在完美呈现。

因此,我正在调试应用程序,但不知道下一步该去哪里,因为不清楚这个问题来自哪里。

这个问题确实存在但没有答案,而且是 5 岁

如果您需要任何其他信息,请发表评论。

更新:iOS 版本中也存在完全相同的行为 - 没有视频渲染