这让我崛起。我一直在研究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。
答案 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;
答案 1 :(得分:0)
发现了这个问题。 问题是由于开发人员之间关于API名称更改的沟通不良。对等体之间的所有通信都正常工作,但创建要约的一方并未向其的RTC连接添加远程描述。因此,iceConnectionStatus重新标记为新的,并且signallingStatus是“具有本地描述”的#39;。正确设置远程描述后,所有通信都已完成,并且流已通过。
有点令人讨厌的人因为: - 优惠已创建&正确添加。然后发送。此时正在获取iceCandidates并正确发送。 - 正确收到要约,设置为远程并正确创建答案。此时正在获取iceCandidates并正确发送。 - 正在触发onaddstream事件以及预期接收流的一方。
在我看来,除非iceConnection完成,否则不应触发此事件。我认为这让我最困惑。
@Ajay,谢谢你的时间!