如何在科尔多瓦手机上本地加载 base64 音频
How to load base64 audio locally on cordova mobile?
我一直在尝试加载已经在base64中编码的音频文件,但无济于事。我可以轻松加载编码的图像,但我不能用音频来加载。我使用 cordova 音频找到的示例是将 url 链接传递给资产文件夹,但我尝试过,但它不起作用。
有没有办法直接播放以base64编码的音频文件?
我尝试了cordova插件媒体,但它似乎仅适用于文件,而不适用于base64代码。
最后我找到了这个解决方案:
解决方案 1:
var src = "data:audio/mp3;base64," + your_base64_code;
document.write("<audio preload='auto' autoplay><source src='" + src + "' /></audio>");
解决方案 2:
1)将base64代码转换为音频文件,将其保存在缓存文件夹中。您可以阅读本文来执行此操作: 如何在带有Cordova的设备上从mp3 base64字符串创建音频文件
您可以用作目标文件夹:cordova.file.cacheDirectory
例如:
saveBase64AsAudioFile(cordova.file.cacheDirectory, "audiofile.mp3", your_base64_code, "audio/mp3");
2) 使用cordova插件媒体播放创建的文件:
setTimeout(function () {
var src = cordova.file.cacheDirectory + "audiofile.mp3";
var media = new Media(src);
media.play();
}, 2000);
- 使用 setTimeout 确保文件已创建。
相关文章:
- 如何在html5/JS中只预加载音频文件的一部分
- 加载音频的Javascript库无法工作
- HTML,JS:加载音频是否需要在移动浏览器上进行用户交互
- 如何在加载音频源文件时使用 js/jquery 来处理事件
- 媒体元素 - 动态加载音频
- 在流星应用程序中加载音频文件
- 使用附加组件 SDK 加载音频文件并使用 Aurora.js 播放
- 如何在向用户显示内容之前以html预加载音频
- 如何延迟播放HTML5音频,但忽略加载音频文件的延迟
- 通过导航栏中的单个播放按钮,在电子书中的每一页加载音频文件
- 预加载音频文件/事件
- JavaScript预加载音频
- 如何在播放之前完全加载音频
- Javascript中预加载音频的问题
- 动态加载音频Javascript
- 动态改变源后加载音频元素
- audio.js:是否可以在特定时间加载音频
- 从本地内存加载音频并播放精灵
- 在javascript中完全预加载音频
- 从另一个域加载音频