currentPositionStream property

Stream<int> get currentPositionStream

Implementation

Stream<int> get currentPositionStream {
  final controller = StreamController<int>();
  Timer.periodic(Duration(seconds: 1), (timer) async {
    try {
      if (await isPlaying()) {
        final pos = await currentPosition();
        controller.add(pos ?? 0);
      } else {
        controller.done;
        timer.cancel();
      }
    } catch (e) {
      timer.cancel();
      controller.addError(e);
    }
  });
  return controller.stream;
}