WebRTC - 无法显示远程mediaStream

时间:2017-05-24 15:35:01

标签: video webrtc mediastream

这让我崛起。我一直在研究webRTC通信应用程序。基本用例让我失望。

所以我可以创建RTCPeerConnection就好了,添加一个新抓取的mediaStream,对等交换offer / answer / iceCandidates,连接成功,我可以看到mediaStream对象在.onaddstream连接的另一端正确到达调用回调。

所有这些都很好,但现在我无法在视频元素中绘制媒体流。我已经尝试替换现有视频元素的src,并从头开始创建一个新的视频元素。似乎没什么用。

以防万一我还检查了收到的mediaStream上的曲目。一切都很好看。一个用于音频,一个用于视频,两个均为启用=真。

有人碰到了这个吗?

已更新

优惠:

Person

答案:

$scope.appNumber = function() {
    $scope.str = "12312";
    var x = + $scope.str;
    if (x.toString() === $scope.str) {
        return $scope.str;
    }
    return '-';
 };

在RTCPeerConnenction上正确调用addIceCandidates。

2 个答案:

答案 0 :(得分:0)

检查冰连接状态,应连接/完成。然后只有媒体将从源流到目的地。

function gotRemoteStream(e) {
  if (remoteVideo.srcObject !== e.streams[0]) {
    remoteVideo.srcObject = e.streams[0];
    console.log('pc received remote stream');
  }
}
//pc.onaddstream = gotRemoteStream; // this got deprecated
pc.ontrack = gotRemoteStream;

试试Demo&查看source

答案 1 :(得分:0)

发现了这个问题。 问题是由于开发人员之间关于API名称更改的沟通不良。对等体之间的所有通信都正常工作,但创建要约的一方并未向其的RTC连接添加远程描述。因此,iceConnectionStatus重新标记为新的,并且signallingStatus是“具有本地描述”的#39;。正确设置远程描述后,所有通信都已完成,并且流已通过。

有点令人讨厌的人因为:   - 优惠已创建&正确添加。然后发送。此时正在获取iceCandidates并正确发送。   - 正确收到要约,设置为远程并正确创建答案。此时正在获取iceCandidates并正确发送。   - 正在触发onaddstream事件以及预期接收流的一方。

在我看来,除非iceConnection完成,否则不应触发此事件。我认为这让我最困惑。

@Ajay,谢谢你的时间!