load method

  1. @override
Future<LoadResponse> load(
  1. LoadRequest request
)
override

Loads an audio source.

Implementation

@override
Future<LoadResponse> load(LoadRequest request) async {
  _logger.fine('load(${request.toMap()})');
  if (request.audioSourceMessage is ConcatenatingAudioSourceMessage) {
    final as = request.audioSourceMessage as ConcatenatingAudioSourceMessage;
    final playable = Playlist(
        as.children.map(_convertAudioSourceIntoMediaKit).toList(),
        index: request.initialIndex ?? 0);

    await _player.open(playable);
  } else {
    final playable =
        _convertAudioSourceIntoMediaKit(request.audioSourceMessage);
    _logger.fine('playable is ${playable.toString()}');
    await _player.open(playable);
  }

  if (request.initialPosition != null) {
    await _player.seek(request.initialPosition!);
  }

  return LoadResponse(duration: _player.state.duration);
}