首页 > 解决方案 > 调用 onAddStream() 时不加载远程视频

问题描述

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

时间顺序是:

我的移动客户端订阅服务器并发送他们的sdpOffers. 在ice trickle信令服务器发回sdpAnswers来自 kurento 媒体服务器之后。

因此,我收到了消息,并且使用来自 kurento 媒体服务器startCommunication成功设置了远程描述。sdpAnswers我已经检查了我所有的 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())
        }

远程视图的初始化:

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

  ....

  App.rtcClient.initSurfaceView(remote_view)

远程视图的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" />

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

所以,我在不知道下一步去哪里的情况下调试应用程序,因为不清楚这个问题来自哪里。

这里存在这个确切的问题,但没有答案,它是 5 年

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

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

标签: androidwebrtckurento

解决方案


推荐阅读