loadDataUrl static method
Loads a sound from a data url.
Please be aware that browsers do support different kinds of audio types. You can get a list of supported types here: Sound.supportedTypes
var sound = await Sound.loadDataUrl("data:audio/mpeg;base64,<data>");
sound.play();
Implementation
static Future<Sound> loadDataUrl(String dataUrl,
[SoundLoadOptions? soundLoadOptions]) async {
final options = soundLoadOptions ?? Sound.defaultLoadOptions;
final audioContext = WebAudioApiMixer.audioContext;
final start = dataUrl.indexOf(',') + 1;
final bytes = base64.decoder.convert(dataUrl, start);
try {
final audioData = bytes.buffer;
final audioBuffer = await audioContext.decodeAudioData(audioData);
return WebAudioApiSound._(audioBuffer);
} catch (e) {
if (options.ignoreErrors) {
return MockSound.loadDataUrl(dataUrl, options);
} else {
throw LoadError('Failed to load sound.', e);
}
}
}