MediaKitPlayer constructor

MediaKitPlayer(
  1. String id
)

Implementation

MediaKitPlayer(super.id) {
  _player = Player(
      configuration: PlayerConfiguration(
    title: 'JustAudioMediaKit',
    logLevel: JustAudioMediaKit.mpvLogLevel,
    ready: () => _readyCompleter.complete(),
  ));

  // store subscriptions to cancel later
  _streamSubscriptions = [
    _player.stream.duration.listen((duration) {
      _processingState = ProcessingStateMessage.ready;
      updatePlaybackEvent(duration: duration);
    }),
    _player.stream.position.listen((position) {
      _position = position;
      updatePlaybackEvent();
    }),
    _player.stream.buffering.listen((isBuffering) {
      _logger.fine('isBuffering: $isBuffering');
      _processingState = isBuffering
          ? ProcessingStateMessage.buffering
          : ProcessingStateMessage.ready;
      updatePlaybackEvent();
    }),
    _player.stream.buffer.listen((buffer) {
      _bufferedPosition = buffer;
      updatePlaybackEvent();
    }),
    _player.stream.playing.listen((playing) {
      _processingState = ProcessingStateMessage.ready;
      _dataController.add(PlayerDataMessage(playing: playing));
      updatePlaybackEvent();
    }),
    _player.stream.volume.listen((volume) {
      _dataController.add(PlayerDataMessage(volume: volume / 100.0));
    }),
    _player.stream.completed.listen((completed) {
      _processingState = completed
          ? ProcessingStateMessage.completed
          : ProcessingStateMessage.ready;
      updatePlaybackEvent();
    }),
    _player.stream.error.listen((error) {
      _processingState = ProcessingStateMessage.idle;
      updatePlaybackEvent();
      _logger.severe('ERROR OCCURRED: $error');
    }),
    _player.stream.playlist.listen((playlist) {
      _currentIndex = playlist.index;
      updatePlaybackEvent();
    }),
    _player.stream.pitch.listen((pitch) {
      _dataController.add(PlayerDataMessage(pitch: pitch));
    }),
    _player.stream.rate.listen((rate) {
      _dataController.add(PlayerDataMessage(speed: rate));
    }),
    _player.stream.log.listen((event) {
      print("MPV: [${event.level}] ${event.prefix}: ${event.text}");
    }),
  ];
}