@@ -32,6 +32,8 @@ class PlatformStreams {
3232 StreamController <PlayerIdentifier <List <double >>>.broadcast ();
3333 _extractionProgressController =
3434 StreamController <PlayerIdentifier <double >>.broadcast ();
35+ _completionController =
36+ StreamController <PlayerIdentifier <void >>.broadcast ();
3537 await AudioWaveformsInterface .instance.setMethodCallHandler ();
3638 }
3739
@@ -47,11 +49,15 @@ class PlatformStreams {
4749 Stream <PlayerIdentifier <double >> get onExtractionProgress =>
4850 _extractionProgressController.stream;
4951
52+ Stream <PlayerIdentifier <void >> get onCompletion =>
53+ _completionController.stream;
54+
5055 late StreamController <PlayerIdentifier <int >> _currentDurationController;
5156 late StreamController <PlayerIdentifier <PlayerState >> _playerStateController;
5257 late StreamController <PlayerIdentifier <List <double >>>
5358 _extractedWaveformDataController;
5459 late StreamController <PlayerIdentifier <double >> _extractionProgressController;
60+ late StreamController <PlayerIdentifier <void >> _completionController;
5561
5662 void addCurrentDurationEvent (PlayerIdentifier <int > playerIdentifier) {
5763 if (! _currentDurationController.isClosed) {
@@ -72,18 +78,25 @@ class PlatformStreams {
7278 }
7379 }
7480
75- void addExtractionProgress (PlayerIdentifier <double > progress) async {
81+ void addExtractionProgress (PlayerIdentifier <double > progress) {
7682 if (! _extractionProgressController.isClosed) {
7783 _extractionProgressController.add (progress);
7884 }
7985 }
8086
87+ void addCompletionEvent (PlayerIdentifier <void > event) {
88+ if (! _completionController.isClosed) {
89+ _completionController.add (event);
90+ }
91+ }
92+
8193 void dispose () {
8294 _currentDurationController.close ();
8395 _playerStateController.close ();
8496 _extractedWaveformDataController.close ();
8597 _currentDurationController.close ();
86- AudioWaveformsInterface .instance.removeMethodCallHandeler ();
98+ _completionController.close ();
99+ AudioWaveformsInterface .instance.removeMethodCallHandler ();
87100 isInitialised = false ;
88101 }
89102}
0 commit comments