mirror of
https://github.com/pion/webrtc.git
synced 2025-10-05 23:26:58 +08:00

Logs: TypeError: pc.addStream is not a function. Fixed js error when using safari due to deprecated RTCPeerConnection.addStream() method. Updated js fiddle examples to use the addTrack() method instead.
42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
/* eslint-env browser */
|
|
|
|
let pc = new RTCPeerConnection({
|
|
iceServers: [
|
|
{
|
|
urls: 'stun:stun.l.google.com:19302'
|
|
}
|
|
]
|
|
})
|
|
var log = msg => {
|
|
document.getElementById('logs').innerHTML += msg + '<br>'
|
|
}
|
|
|
|
navigator.mediaDevices.getUserMedia({ video: true, audio: true })
|
|
.then(stream => {
|
|
|
|
document.getElementById('video1').srcObject = stream
|
|
stream.getTracks().forEach(track => pc.addTrack(track, stream));
|
|
|
|
pc.createOffer().then(d => pc.setLocalDescription(d)).catch(log)
|
|
}).catch(log)
|
|
|
|
pc.oniceconnectionstatechange = e => log(pc.iceConnectionState)
|
|
pc.onicecandidate = event => {
|
|
if (event.candidate === null) {
|
|
document.getElementById('localSessionDescription').value = btoa(JSON.stringify(pc.localDescription))
|
|
}
|
|
}
|
|
|
|
window.startSession = () => {
|
|
let sd = document.getElementById('remoteSessionDescription').value
|
|
if (sd === '') {
|
|
return alert('Session Description must not be empty')
|
|
}
|
|
|
|
try {
|
|
pc.setRemoteDescription(new RTCSessionDescription(JSON.parse(atob(sd))))
|
|
} catch (e) {
|
|
alert(e)
|
|
}
|
|
}
|