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

Phonegap / Cordova - Code not playing audio on android (Not a path issue)

本文关键字:音频 路径 问题 播放 代码 Cordova- Android Phonegap      更新时间:2023-09-26

我正在开发一个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)音频HTML5 API(也包装有jQuery),用于播放来自Web的音频文件

2)Cordova插件,提供API来播放与Cordova项目捆绑在一起的本地音频文件;例如,两个用于播放音频文件的 Cordova 插件是:

  • 科尔多瓦插件媒体
  • cordova-plugin-nativeaudio

另一种方法是在 Cordova 项目中使用 Crosswalk,因此将原生 Cordova Web 视图替换为 Crosswalk Web 视图。这样,您就拥有了基于 Chromium 的 Web 视图,从而支持所有现代 Web API,包括音频。

一些有用的 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/

PS:不幸的是,我无法在Cordova文档上找到有关Android Cordova网络视图支持的Web API的详细信息