mirror of
				https://github.com/pion/webrtc.git
				synced 2025-10-31 02:36:46 +08:00 
			
		
		
		
	 52249252fb
			
		
	
	52249252fb
	
	
	
		
			
			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)
 | |
|   }
 | |
| }
 |