8000 Avoid renderer initialization multiple times (#1067) · flutter-webrtc/flutter-webrtc@939367f · GitHub
[go: up one dir, main page]

Skip to content

Commit 939367f

Browse files
authored
Avoid renderer initialization multiple times (#1067)
1 parent 08dbbaf commit 939367f

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

lib/src/native/rtc_video_renderer_impl.dart

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ class RTCVideoRenderer extends ValueNotifier<RTCVideoValue>
1717

1818
@override
1919
Future<void> initialize() async {
20+
if (_textureId != null) {
21+
return;
22+
}
2023
final response = await WebRTC.invokeMethod('createVideoRenderer', {});
2124
_textureId = response['textureId'];
2225
_eventSubscription = EventChannel('FlutterWebRTC/Texture$textureId')
@@ -61,11 +64,13 @@ class RTCVideoRenderer extends ValueNotifier<RTCVideoValue>
6164
@override
6265
Future<void> dispose() async {
6366
await _eventSubscription?.cancel();
64-
await WebRTC.invokeMethod(
65-
'videoRendererDispose',
66-
<String, dynamic>{'textureId': _textureId},
67-
);
68-
67+
_eventSubscription = null;
68+
if (_textureId != null) {
69+
await WebRTC.invokeMethod('videoRendererDispose', <String, dynamic>{
70+
'textureId': _textureId,
71+
});
72+
_textureId = null;
73+
}
6974
return super.dispose();
7075
}
7176

0 commit comments

Comments
 (0)
0