resetContext method

Future<void> resetContext(
  1. AudioContext? audioCtx,
  2. MediaStream? mediaStream
)

Implementation

Future<void> resetContext(
  web.AudioContext? audioCtx,
  web.MediaStream? mediaStream,
) async {
  final ms = mediaStream;

  if (ms != null) {
    final tracks = ms.getAudioTracks();
    for (var track in tracks.toDart) {
      track.stop();
      ms.removeTrack(track);
    }
  }

  final ctx = audioCtx;
  if (ctx != null) {
    try {
      if (ctx.state != 'closed') {
        await ctx.close().toDart;
      }
    } catch (e) {
      debugPrint(e.toString());
    }
  }
}