load method
Loads an audio source.
Implementation
@override
Future<LoadResponse> load(LoadRequest request) async {
_logger.fine('load(${request.toMap()})');
_currentIndex = request.initialIndex ?? 0;
_bufferedPosition = Duration.zero;
_position = Duration.zero;
if (request.audioSourceMessage is ConcatenatingAudioSourceMessage) {
final as = request.audioSourceMessage as ConcatenatingAudioSourceMessage;
final playable = Playlist(
as.children.map(_convertAudioSourceIntoMediaKit).toList(),
index: _currentIndex);
await _player.open(playable);
} else {
final playable =
_convertAudioSourceIntoMediaKit(request.audioSourceMessage);
_logger.fine('playable is ${playable.toString()}');
await _player.open(playable);
}
if (request.initialPosition != null) {
_position = request.initialPosition!;
await _player.seek(request.initialPosition!);
}
_updatePlaybackEvent();
return LoadResponse(duration: _player.state.duration);
}