MediaKitPlayer constructor
MediaKitPlayer(
- String id
Implementation
MediaKitPlayer(super.id) {
_player = Player(
configuration: PlayerConfiguration(
protocolWhitelist: JustAudioMediaKit.protocolWhitelist,
title: JustAudioMediaKit.title,
bufferSize: JustAudioMediaKit.bufferSize,
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}");
}),
];
}