@@ -183,20 +183,6 @@ class Rating {
183
183
Rating ._fromRaw (Map <dynamic , dynamic > raw) : this ._internal (RatingStyle .values[raw['type' ]], raw['value' ]);
184
184
}
185
185
186
- StreamController <List <MediaItem >> _browseMediaChildrenController =
187
- StreamController <List <MediaItem >>.broadcast ();
188
- StreamController <PlaybackState > _playbackStateController =
189
- StreamController <PlaybackState >.broadcast ();
190
- StreamController <MediaItem > _currentMediaItemController =
191
- StreamController <MediaItem >.broadcast ();
192
- StreamController <List <MediaItem >> _queueController =
193
- StreamController <List <MediaItem >>.broadcast ();
194
-
195
- List <MediaItem > _browseMediaChildren;
196
- PlaybackState _playbackState;
197
- MediaItem _currentMediaItem;
198
- List <MediaItem > _queue;
199
-
200
186
/// Metadata about an audio item that can be played, or a folder containing
201
187
/// audio items.
202
188
class MediaItem {
@@ -326,33 +312,49 @@ class AudioService {
326
312
/// task.
327
313
static const String MEDIA_ROOT_ID = "root" ;
328
314
315
+ static StreamController <List <MediaItem >> _browseMediaChildrenController =
316
+ StreamController <List <MediaItem >>.broadcast ();
317
+
329
318
/// A stream that broadcasts the children of the current browse
330
319
/// media parent.
331
320
static Stream <List <MediaItem >> get browseMediaChildrenStream =>
332
321
_browseMediaChildrenController.stream;
333
322
323
+ static StreamController <PlaybackState > _playbackStateController =
324
+ StreamController <PlaybackState >.broadcast ();
325
+
334
326
/// A stream that broadcasts the playback state.
335
327
static Stream <PlaybackState > get playbackStateStream =>
336
328
_playbackStateController.stream;
337
329
330
+ static StreamController <MediaItem > _currentMediaItemController =
331
+ StreamController <MediaItem >.broadcast ();
332
+
338
333
/// A stream that broadcasts the current [MediaItem] .
339
334
static Stream <MediaItem > get currentMediaItemStream =>
340
335
_currentMediaItemController.stream;
341
336
337
+ static StreamController <List <MediaItem >> _queueController =
338
+ StreamController <List <MediaItem >>.broadcast ();
339
+
342
340
/// A stream that broadcasts the queue.
343
341
static Stream <List <MediaItem >> get queueStream => _queueController.stream;
344
342
345
343
/// The children of the current browse media parent.
346
344
static List <MediaItem > get browseMediaChildren => _browseMediaChildren;
345
+ static List <MediaItem > _browseMediaChildren;
347
346
348
347
/// The current playback state.
349
348
static PlaybackState get playbackState => _playbackState;
349
+ static PlaybackState _playbackState;
350
350
351
351
/// The current media item.
352
352
static MediaItem get currentMediaItem => _currentMediaItem;
353
+ static MediaItem _currentMediaItem;
353
354
354
355
/// The current queue.
355
356
static List <MediaItem > get queue => _queue;
357
+ static List <MediaItem > _queue;
356
358
357
359
/// Connects to the service from your UI so that audio playback can be
358
360
/// controlled.
@@ -391,6 +393,16 @@ class AudioService {
391
393
_queue = args.map (_raw2mediaItem).toList ();
392
394
_queueController.add (_queue);
393
395
break ;
396
+ case 'onStopped' :
397
+ _browseMediaChildren = null ;
398
+ _browseMediaChildrenController.add (null );
399
+ _playbackState = null ;
400
+ _playbackStateController.add (null );
401
+ _currentMediaItem = null ;
402
+ _currentMediaItemController.add (null );
403
+ _queue = null ;
404
+ _queueController.add (null );
405
+ break ;
394
406
}
395
407
});
396
408
await _channel.invokeMethod ("connect" );
@@ -791,16 +803,6 @@ class AudioServiceBackground {
791
803
await _backgroundChannel.invokeMethod ('ready' , enableQueue);
792
804
await onStart ();
793
805
await _backgroundChannel.invokeMethod ('stopped' );
794
-
795
- _browseMediaChildren = null ;
796
- _browseMediaChildrenController.add (null );
797
- _playbackState = null ;
798
- _playbackStateController.add (null );
799
- _currentMediaItem = null ;
800
- _currentMediaItemController.add (null );
801
- _queue = null ;
802
- _queueController.add (null );
803
-
804
806
_backgroundChannel.setMethodCallHandler (null );
805
807
_state = _noneState;
806
808
}
0 commit comments