mirror of
https://github.com/pion/webrtc.git
synced 2025-10-06 07:37:10 +08:00

rtp-forwarder.sdp hardcodes the PayloadTypes 96 and 111. Before If the browser doesn't use those values we expect the user to update the SDP. The example has been updated to modify the packets to make it easier on the user.
40 lines
1.0 KiB
JavaScript
40 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 => {
|
|
stream.getTracks().forEach(track => pc.addTrack(track, stream))
|
|
document.getElementById('video1').srcObject = 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)
|
|
}
|
|
}
|