aboutsummaryrefslogtreecommitdiff
path: root/extension/media.js
blob: 5e83ac74900d17fe6086cd269ae511c7fa8cb19c (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
const internals = {
  mediaStream: null,
};

export default {
  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;
  },
};