aboutsummaryrefslogtreecommitdiff
path: root/extension/media.js
blob: 33c6feecc969e696df0e849a315cbc364f05961b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'use strict';

const internals = {
  mediaStream: null
};

module.exports = {
  async start() {

    internals.mediaStream = internals.mediaStream || await navigator.mediaDevices.getUserMedia({
      audio: true
    });

    return internals.mediaStream;
  },

  stop() {

    if (!internals.mediaStream) {
      return;
    }

    for (const track of internals.mediaStream.getAudioTracks()) {
      track.stop();
    }

    internals.mediaStream = null;
  }
};