decodeAudioSource method
Converts an audio source message to a player.
Implementation
AudioSourcePlayer decodeAudioSource(AudioSourceMessage audioSourceMessage) {
if (audioSourceMessage is ProgressiveAudioSourceMessage) {
return ProgressiveAudioSourcePlayer(this, audioSourceMessage.id,
Uri.parse(audioSourceMessage.uri), audioSourceMessage.headers);
} else if (audioSourceMessage is DashAudioSourceMessage) {
return DashAudioSourcePlayer(this, audioSourceMessage.id,
Uri.parse(audioSourceMessage.uri), audioSourceMessage.headers);
} else if (audioSourceMessage is HlsAudioSourceMessage) {
return HlsAudioSourcePlayer(this, audioSourceMessage.id,
Uri.parse(audioSourceMessage.uri), audioSourceMessage.headers);
} else if (audioSourceMessage is ConcatenatingAudioSourceMessage) {
return ConcatenatingAudioSourcePlayer(
this,
audioSourceMessage.id,
getAudioSources(audioSourceMessage.children),
audioSourceMessage.useLazyPreparation,
audioSourceMessage.shuffleOrder);
} else if (audioSourceMessage is ClippingAudioSourceMessage) {
return ClippingAudioSourcePlayer(
this,
audioSourceMessage.id,
getAudioSource(audioSourceMessage.child) as UriAudioSourcePlayer,
audioSourceMessage.start,
audioSourceMessage.end);
} else if (audioSourceMessage is LoopingAudioSourceMessage) {
return LoopingAudioSourcePlayer(this, audioSourceMessage.id,
getAudioSource(audioSourceMessage.child), audioSourceMessage.count);
} else {
throw Exception("Unknown AudioSource type: $audioSourceMessage");
}
}