我正在开发一个 phonegap/cordova 应用程序,它可以播放本地存储的音频文件。
我遇到了一些代码和 android 的问题,其中示例 1 无法在 android 上播放,而示例 2 可以播放。
注意:问题不是路径,我知道文件的路径是正确的。
示例 1 - 不能在 android 上播放,但在为 IOS 修改路径的 IOS 上可以正常播放。
var audiofile = cordova.file.dataDirectory+'android_asset/www/audio/1.aac';
...
$( ".player" ).html('<div class="audioDemo-wrapper"><audio class="audioDemo" controls><source src="'+audiofile+'" type="audio/mpeg"></audio><div class="closeAudioBtn" onclick="stopAndCloseAudio();">X</div></div>');
$(".audioDemo").trigger('play');
示例 2 - 这适用于 Android,但不是我想要的方式。
var audiofile = cordova.file.dataDirectory+'android_asset/www/audio/1.aac';
window.open(audiofile, '_blank', 'location=no,closebuttoncaption=Close');
区别主要在于例2在新窗口打开 ?
为什么示例 1 在 iOS 上可以正常播放,但在 Android 上却不能播放(注意:路径不是问题)
有什么想法吗?
最佳答案
借助 Android 上的 Cordova webview,您可以使用:
1) Audio HTML5 API(也用 jQuery 封装)用于播放来自网络的音频文件。
2) Cordova 插件,它提供 API 来播放与 Cordova 项目 bundle 在一起的本地音频文件;例如两个用于播放音频文件的 Cordova 插件是:
另一种方法是使用 Crosswalk在 Cordova 项目中,因此用 Crosswalk webview 替换了原生的 Cordova webview。这样你就有了一个基于 Chromium 的 webview,支持所有现代 web APIs ,包括音频。
Ionic/Cordova 项目的一些有用的迷你教程(仅适用于 Cordova 项目):
- http://gonehybrid.com/how-to-add-sound-effects-to-your-ionic-app-with-native-audio/
- https://blog.nraboy.com/2014/11/playing-audio-android-ios-ionicframework-app/
P.S.:不幸的是,我无法在 Cordova 文档中找到有关 Android Cordova webview 支持的 Web API 的详细信息。
关于javascript - Phonegap/Cordova - 代码不在 android 上播放音频(不是路径问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590124/