From d40d1bb547bd66a331e25cde8bcddbe25988139e Mon Sep 17 00:00:00 2001 From: David Zhao Date: Fri, 27 Aug 2021 15:37:44 -0700 Subject: [PATCH] avoid disposing attached media stream --- example/lib/room.dart | 1 + lib/src/widget/video_track_renderer.dart | 3 +++ 2 files changed, 4 insertions(+) diff --git a/example/lib/room.dart b/example/lib/room.dart index f33fc36..d7b9667 100644 --- a/example/lib/room.dart +++ b/example/lib/room.dart @@ -155,6 +155,7 @@ class _RoomState extends State with RoomDelegate { } } +// displays a participant in view class VideoView extends StatefulWidget { final Participant participant; final VideoQuality quality; diff --git a/lib/src/widget/video_track_renderer.dart b/lib/src/widget/video_track_renderer.dart index 325f753..ceebccd 100644 --- a/lib/src/widget/video_track_renderer.dart +++ b/lib/src/widget/video_track_renderer.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_webrtc/flutter_webrtc.dart'; + import '../track/video_track.dart'; import '../track/local_video_track.dart'; @@ -30,6 +31,7 @@ class _VideoTrackRendererState extends State { @override void dispose() { widget.track.removeListener(_trackChanged); + _renderer.srcObject = null; _renderer.dispose(); super.dispose(); } @@ -38,6 +40,7 @@ class _VideoTrackRendererState extends State { void didUpdateWidget(covariant VideoTrackRenderer oldWidget) { oldWidget.track.removeListener(_trackChanged); widget.track.addListener(_trackChanged); + _trackChanged(); super.didUpdateWidget(oldWidget); }