diff options
| author | Rubén Beltran del Río <954000-rbdr@users.noreply.gitlab.com> | 2020-10-07 19:46:01 +0000 |
|---|---|---|
| committer | Rubén Beltran del Río <954000-rbdr@users.noreply.gitlab.com> | 2020-10-07 19:46:01 +0000 |
| commit | 1d73636a839a4efe8e12cffb33714bc60c58dc4b (patch) | |
| tree | 3bc1a40aa6228d31ad647b645dda460aab733761 /extension/peers.js | |
| parent | 02071d8e6e45dd253298d2e450ecfffacccaec19 (diff) | |
| parent | d9e5fa1a04a38e02c4dc5b5967e9198ddad3a15d (diff) | |
Merge branch 'rbdr-peer-abstraction' into 'main'
Add Peer and Media abstractions
See merge request rbdr/junction!5
Diffstat (limited to 'extension/peers.js')
| -rw-r--r-- | extension/peers.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/extension/peers.js b/extension/peers.js new file mode 100644 index 0000000..41155d4 --- /dev/null +++ b/extension/peers.js @@ -0,0 +1,41 @@ +'use strict'; + +const internals = { + peers: {}, + + createAudioElement(source) { + + const audioElement = document.createElement('audio'); + audioElement.setAttribute('class', 'junction-call-audio'); + audioElement.src = source; + audioElement.autoplay = 'autoplay'; + document.querySelector('body').appendChild(audioElement); + + return audioElement; + } +}; + +module.exports = { + add(id, url) { + + internals.peers[id] && this.remove(id); + internals.peers[id] = internals.createAudioElement(url) + }, + + remove(id) { + + internals.peers[id] && internals.peers[id].remove(); + delete internals.peers[id]; + }, + + count() { + + return Object.keys(internals.peers).length; + }, + + reset() { + + internals.peers = {}; + document.querySelectorAll('.junction-call-audio').forEach((audioElement) => audioElement.remove()); + } +}; |