javascript - Phonegap/Cordova - 代码不在 android 上播放音频(不是路径问题)

标签 javascript android jquery cordova

我正在开发一个 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 项目):

P.S.:不幸的是,我无法在 Cordova 文档中找到有关 Android Cordova webview 支持的 Web API 的详细信息。

关于javascript - Phonegap/Cordova - 代码不在 android 上播放音频(不是路径问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590124/

相关文章:

javascript - 主干设计查询

javascript - 单击时无法切换动画

android - jsonArrayRequest 失败

Windows 7 的 AndroidViewClient 安装

android - 使用android在字符串中添加双引号

jquery - DataTables,获取隐藏单元格的值

php - 数据库、Jquery、Ajax 和 Zend 框架。怎么一起使用呢?

javascript - 在 Node.js 中使用异步模块的问题

javascript - 如何通过一次悬停来扩大和缩小两个不同的div

javascript - jQuery 视频播放器的全屏切换未正确分配类名