我一直在尝试加载已经用 base64 编码的音频文件,但无济于事。我可以很容易地加载编码图像,但我不能加载音频。我在 cordova 音频中找到的例子是将 url 链接传递到 Assets 文件夹,但我试过了,但没有成功。
有没有办法直接播放base64编码的音频文件?
最佳答案
我试过 cordova-plugin-media 但它似乎只适用于文件而不适用于 base64 代码。
最后我找到了这个解决方案:
解决方案 1:
var src = "data:audio/mp3;base64," + your_base64_code;
document.write("<audio preload='auto' autoplay><source src='" + src + "' /></audio>");
解决方案 2:
1) 将base64编码转换为音频文件,保存在缓存文件夹中。 你可以阅读这篇文章来做到这一点:How to create an audio file from a mp3 base64 string on the device with Cordova
您可以用作目标文件夹:cordova.file.cacheDirectory
例如:
saveBase64AsAudioFile(cordova.file.cacheDirectory, "audiofile.mp3", your_base64_code, "audio/mp3");
2) 使用cordova-plugin-media 播放创建的文件:
setTimeout(function () {
var src = cordova.file.cacheDirectory + "audiofile.mp3";
var media = new Media(src);
media.play();
}, 2000);
- 使用 setTimeout 确保文件已经创建。
关于javascript - 如何在 cordova 移动设备上本地加载 base64 音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35245493/