1
我想要做的是讓P1連接到P2,P2獲取網絡攝像頭並將其傳輸到P2。在所有相同的頁面上練習webrtc。爲什麼WebRTC本地流不顯示任何內容?
但onaddstream
我確實得到一個流,它有正確的ID和錯誤,但是當我將它分配給視頻元素什麼也沒有發生。
但是,我確實從p2獲得有效的流,這是請求流的那個人。如果我將視頻設置爲與此流相同,則會顯示網絡攝像頭視頻。
這是你沒有信號ICE候選人代碼
v = $0
pc1 = new RTCPeerConnection();
pc2 = new RTCPeerConnection();
pc1.onaddstream = (s) => {
v.src = URL.createObjectURL(s.stream);
window.s1 = s.stream;
};
pc1.createOffer({offerToReceiveVideo: 1})
.then((offer) => {
pc1.setLocalDescription(offer);
pc2.setRemoteDescription(offer)
})
.then(() => navigator.mediaDevices.getUserMedia({ video: true }))
.then((stream) => {
pc2.addStream(stream);
window.s2 = stream;
})
.then(() => pc2.createAnswer())
.then((answer) => {
pc2.setLocalDescription(answer);
pc1.setRemoteDescription(answer);
})
.catch((err)=>console.log(err));
說明chrome本身還不支持ontrack,你的例子使用shim調用adapter.js –
你能看看這個問題嗎https://stackoverflow.com/questions/46208620/is-my-understanding-of-webrtc-協議正確 –
你也可以解釋爲什麼在磋商需要事件之後做一切事情,爲什麼你的createOffer不需要{offerTORecieveVideo:true}是不是需要,是因爲一個創建要約是發送流的人 –