index: quick hacky fixes for recent browsers
* fixup screen capture api changes * require mouse click before screen capture * better ICE logging * vendor webrtc adapter
This commit is contained in:
parent
7e62a246b8
commit
31293e2141
3480
adapter-latest.js
Normal file
3480
adapter-latest.js
Normal file
File diff suppressed because it is too large
Load Diff
37
index.html
37
index.html
@ -1,4 +1,4 @@
|
||||
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
|
||||
<script src="/adapter-latest.js"></script>
|
||||
<script src="/socket.io/socket.io.js"></script>
|
||||
|
||||
<script>
|
||||
@ -27,10 +27,10 @@
|
||||
if (data.id === id)
|
||||
return;
|
||||
|
||||
console.info('Message:', data);
|
||||
if (data.type === 'joined') {
|
||||
var conn = await getPeerConnection(data.id, true);
|
||||
} else if (data.type === 'ice' && data.peer === id) {
|
||||
console.info('Remote ICE candidate:', JSON.stringify(data.ice))
|
||||
var conn = await getPeerConnection(data.id);
|
||||
conn.addIceCandidate(data.ice).catch(e => {
|
||||
console.log("Failure during addIceCandidate(): " + e.name);
|
||||
@ -69,7 +69,21 @@
|
||||
|
||||
async function getMedia() {
|
||||
if (hash[1] === 'screen' || hash[1] === 'window' || hash[1] === 'tab') {
|
||||
return navigator.getDisplayMedia({video: true});
|
||||
return new Promise((resolve,reject) => {
|
||||
document.addEventListener('click', resolve);
|
||||
}).then(() => navigator.mediaDevices.getDisplayMedia({
|
||||
video: {
|
||||
width: 1920,
|
||||
height: 1080,
|
||||
frameRate: 30,
|
||||
cursor: "always",
|
||||
},
|
||||
audio: {
|
||||
echoCancellation: true,
|
||||
noiseSuppression: true,
|
||||
sampleRate: 44100
|
||||
},
|
||||
}));
|
||||
} else {
|
||||
return navigator.mediaDevices.getUserMedia({video: {width: 1280, height: 720}});
|
||||
}
|
||||
@ -81,15 +95,11 @@
|
||||
|
||||
console.info('Creating PeerConnection for', peer);
|
||||
var conn = new RTCPeerConnection({
|
||||
iceServers: [
|
||||
{urls: 'stun:numb.viagenie.ca'},
|
||||
{urls: 'turn:numb.viagenie.ca', username: 'informatic@hackerspace.pl', credential: 'dupa.8', "expiry": 86400}
|
||||
]
|
||||
});
|
||||
peers[peer] = conn;
|
||||
|
||||
conn.onicecandidate = function (event) {
|
||||
console.info('ICE candidate:', event);
|
||||
console.info('Local ICE candidate:', JSON.stringify(event.candidate));
|
||||
socket.emit('message', {
|
||||
id, room, peer,
|
||||
type: 'ice', ice: event.candidate
|
||||
@ -172,17 +182,6 @@
|
||||
if (!receiver) {
|
||||
var elem = document.documentElement;
|
||||
|
||||
/* View in fullscreen */
|
||||
if (elem.requestFullscreen) {
|
||||
elem.requestFullscreen();
|
||||
} else if (elem.mozRequestFullScreen) { /* Firefox */
|
||||
elem.mozRequestFullScreen();
|
||||
} else if (elem.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
|
||||
elem.webkitRequestFullscreen();
|
||||
} else if (elem.msRequestFullscreen) { /* IE/Edge */
|
||||
elem.msRequestFullscreen();
|
||||
}
|
||||
|
||||
try {
|
||||
var stream = await getMedia();
|
||||
var video = document.getElementById("vlocal");
|
||||
|
Loading…
x
Reference in New Issue
Block a user