const internals = {
- mediaStream: null
+ mediaStream: null,
};
-export default {
- async start() {
+export async function startMedia() {
+ internals.mediaStream =
+ internals.mediaStream ||
+ (await navigator.mediaDevices.getUserMedia({
+ audio: true,
+ }));
- internals.mediaStream = internals.mediaStream || await navigator.mediaDevices.getUserMedia({
- audio: true
- });
+ return internals.mediaStream;
+}
- return internals.mediaStream;
- },
-
- stop() {
-
- if (!internals.mediaStream) {
- return;
- }
-
- for (const track of internals.mediaStream.getAudioTracks()) {
- track.stop();
- }
+export async function stopMedia() {
+ if (!internals.mediaStream) {
+ return;
+ }
- internals.mediaStream = null;
+ for (const track of internals.mediaStream.getTracks()) {
+ track.stop();
}
-};
+
+ internals.mediaStream = null;
+}