start method

Future<void> start (
  1. {bool resolveImages: false,
  2. NowPlayingImageResolver resolver}
)

Starts the service.

Initialises stream, sets up the app lifecycle observer, starts a polling timer on iOS, sets incoming method handler for Android

Implementation

Future<void> start({bool resolveImages = false, NowPlayingImageResolver resolver}) async {
  // async, but should not be awaited
  this._resolveImages = resolver != null || resolveImages;
  this._resolver = resolver ?? DefaultNowPlayingImageResolver();

  this.track = NowPlayingTrack.notPlaying;

  _controller = StreamController<NowPlayingTrack>.broadcast();
  _controller.add(NowPlayingTrack.notPlaying);

  await _bindToWidgetsBinding();
  if (Platform.isAndroid) _channel.setMethodCallHandler(_handler);
  if (Platform.isIOS) _refreshTimer = Timer.periodic(_refreshPeriod, _refresh);

  final info = await PackageInfo.fromPlatform();
  debugPrint('NowPlaying is part of ${info.packageName}');

  await _refresh();
}