From 18d12613f60ae591e064ce01f94e6c8d149973fb Mon Sep 17 00:00:00 2001 From: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com> Date: Tue, 26 Oct 2021 23:25:11 +0900 Subject: [PATCH] change `restartTrack` sequence --- lib/src/track/local_video_track.dart | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/src/track/local_video_track.dart b/lib/src/track/local_video_track.dart index 4ce5280..7be8b75 100644 --- a/lib/src/track/local_video_track.dart +++ b/lib/src/track/local_video_track.dart @@ -38,12 +38,19 @@ class LocalVideoTrack extends VideoTrack { currentOptions = options ?? currentOptions; - final stream = await _createStream(currentOptions); - final track = stream.getVideoTracks().first; - setMediaStream(stream); + // stop the current track await mediaStreamTrack.stop(); - mediaStreamTrack = track; - await sender?.replaceTrack(track); + + // create new track with options + final newStream = await _createStream(currentOptions); + final newTrack = newStream.getVideoTracks().first; + + // replace track on sender + await sender?.replaceTrack(newTrack); + + // set new stream & track to this object + setMediaStream(newStream); + mediaStreamTrack = newTrack; } /// Creates a LocalVideoTrack from camera input.