如何在cordova mobile上本地加载base64音频?

时间:2016-02-06 19:34:35

标签: javascript cordova audio mobile base64

我一直在尝试加载已在base64中编码的音频文件,但无济于事。我可以轻松加载编码图像,但我不能用音频来做。我发现cordova音频的例子是将url链接传递给资产文件夹,但是我尝试了它并且它没有用。

有没有办法直接播放base64编码的音频文件?

1 个答案:

答案 0 :(得分:2)

我尝试过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确保文件已经创建。