diff --git a/flutter/flutter/android/src/main/java/com/arthenica/ffmpegkit/flutter/FFmpegKitFlutterPlugin.java b/flutter/flutter/android/src/main/java/com/arthenica/ffmpegkit/flutter/FFmpegKitFlutterPlugin.java
index cf06f57..7711a3c 100644
--- a/flutter/flutter/android/src/main/java/com/arthenica/ffmpegkit/flutter/FFmpegKitFlutterPlugin.java
+++ b/flutter/flutter/android/src/main/java/com/arthenica/ffmpegkit/flutter/FFmpegKitFlutterPlugin.java
@@ -222,6 +222,7 @@ public class FFmpegKitFlutterPlugin implements FlutterPlugin, ActivityAware, Met
@Override
public void onListen(final Object o, final EventChannel.EventSink eventSink) {
this.eventSink = eventSink;
+ registerGlobalCallbacks();
Log.d(LIBRARY_NAME, String.format("FFmpegKitFlutterPlugin %s started listening to events on %s.", this, eventSink));
}
diff --git a/flutter/flutter/lib/src/ffmpeg_kit_flutter_initializer.dart b/flutter/flutter/lib/src/ffmpeg_kit_flutter_initializer.dart
index 6c54e21..714a8e5 100644
--- a/flutter/flutter/lib/src/ffmpeg_kit_flutter_initializer.dart
+++ b/flutter/flutter/lib/src/ffmpeg_kit_flutter_initializer.dart
@@ -17,6 +17,7 @@
* along with FFmpegKit. If not, see .
*/
+import 'dart:async';
import 'dart:io';
import 'package:ffmpeg_kit_flutter_platform_interface/ffmpeg_kit_flutter_platform_interface.dart';
@@ -47,12 +48,14 @@ class FFmpegKitInitializer {
static FFmpegKitInitializer _instance = new FFmpegKitInitializer();
static bool _initialized = false;
+ StreamSubscription? _eventSubscription;
static Future initialize() async {
if (!_initialized) {
_initialized = true;
await _instance._initialize();
}
+ _instance._updateEventSubscription();
return _initialized;
}
@@ -308,8 +311,6 @@ class FFmpegKitInitializer {
Future _initialize() async {
print("Loading ffmpeg-kit-flutter.");
- _eventChannel.receiveBroadcastStream().listen(_onEvent, onError: _onError);
-
final logLevel = await _getLogLevel();
if (logLevel != null) {
FFmpegKitConfig.setLogLevel(logLevel);
@@ -324,4 +325,10 @@ class FFmpegKitInitializer {
final fullVersion = "$platform-$packageName-$arch-$version$isLTSPostfix";
print("Loaded ffmpeg-kit-flutter-$fullVersion.");
}
+
+ void _updateEventSubscription() {
+ _eventSubscription?.cancel();
+ _eventSubscription = _eventChannel.receiveBroadcastStream().listen(_onEvent,
+ onError: _onError);
+ }
}