Permalink
Fetching contributors…
Cannot retrieve contributors at this time
executable file 113 lines (97 sloc) 3.1 KB
<!--
> Muaz Khan - github.com/muaz-khan
> MIT License - www.webrtc-experiment.com/licence
> Documentation - www.RTCMultiConnection.org
-->
<script>
if(!location.hash.replace('#', '').length) {
location.href = location.href.split('#')[0] + '#' + (Math.random() * 100).toString().replace('.', '');
location.reload();
}
</script>
<h1><a href="http://www.RTCMultiConnection.org/docs/">RTCMultiConnection</a> & Mute/UnMute</h1>
<button id="setup">Setup RTC-Multi-Connection</button>
<button id="mute">Mute</button>
<hr />
<script src="https://cdn.webrtc-experiment.com/socket.io.js"></script>
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
<script src="https://cdn.webrtc-experiment.com/CodecsHandler.js"></script>
<script src="https://cdn.webrtc-experiment.com/IceServersHandler.js"></script>
<script src="https://cdn.webrtc-experiment.com/RTCMultiConnection.js"></script>
<script>
document.querySelector('#setup').onclick = function() {
connection.open();
this.disabled = true;
};
document.querySelector('#mute').onclick = function() {
if (this.innerHTML == 'Mute') {
this.innerHTML = 'UnMute';
connection.streams.mute({
video: true,
type: 'local'
});
} else {
this.innerHTML = 'Mute';
connection.streams.unmute({
video: true,
type: 'local'
});
}
};
var connection = new RTCMultiConnection();
// https://github.com/muaz-khan/WebRTC-Experiment/tree/master/socketio-over-nodejs
var SIGNALING_SERVER = 'https://socketio-over-nodejs2.herokuapp.com:443/';
connection.openSignalingChannel = function(config) {
var channel = config.channel || connection.channel || 'default-namespace';
var sender = Math.round(Math.random() * 9999999999) + 9999999999;
io.connect(SIGNALING_SERVER).emit('new-channel', {
channel: channel,
sender: sender
});
var socket = io.connect(SIGNALING_SERVER + channel);
socket.channel = channel;
socket.on('connect', function() {
if (config.callback) config.callback(socket);
});
socket.send = function(message) {
socket.emit('message', {
sender: sender,
data: message
});
};
socket.on('message', config.onmessage);
};
connection.onstream = function(e) {
document.body.appendChild(e.mediaElement);
};
// if local or remote stream is muted
connection.onmute = function(e) {
e.mediaElement.setAttribute('poster', '//www.webrtc-experiment.com/images/muted.png');
};
// if local or remote stream is unmuted
connection.onunmute = function(e) {
e.mediaElement.removeAttribute('poster');
};
connection.connect();
</script>
<pre>
// if local or remote stream is muted
connection.onmute = function(e) {
e.mediaElement.setAttribute('poster', '//www.webrtc-experiment.com/images/muted.png');
};
// if local or remote stream is unmuted
connection.onunmute = function(e) {
e.mediaElement.removeAttribute('poster');
};
</pre>
<hr />
<style>
html {
background: rgb(255, 252, 239);
}
audio,
video {
vertical-align: top;
width: 40%;
}
</style>