繁体   English   中英

HTML5音频无法在Crosswalk Cordova或Android 4.4上基于标准Cordova的WebView上运行

[英]HTML5 Audio not working on Crosswalk Cordova or standard Cordova based WebView on Android 4.4

我正在尝试使用HTML Audio API从远程HTTP源播放mp3文件。 它完全无法在基于Android的默认基于WebView的Cordova实例或基于Crosswalk Cordova闪烁的实例上运行。 设备正在将其注册为正在播放,但没有发出实际声音。

var audio = new Audio();


function playSong(url) {

    audio.src = url;
    audio.play();
}

上面的代码是一个片段,其中删除了所有与音频无关的内容,我添加了Internet权限集,并且该应用程序可以在桌面上正常运行(使用Chrome 35)。

是我缺少播放许可的情况还是需要在页面上显示物理音频标签才能使其正常工作?

我看到您最终选择了Native,但我将以解决我的问题的方式回答。 我试图用在Android 4.4上运行的音乐制作HTML5游戏,但从未成功。 我尝试了很多事情,并且已经有几个月的时间了。

首先,Crosswalk的最低Android版本目前为4.0

我的问题是我实际上并没有使用Crosswalk。 我想我在某个时候正在使用它,然后切换了计算机,而插件依赖项没有保存到我的config.xml中。 无论如何,有些东西混杂在一起,并且没有包含在我的构建中。 默认情况下,crosswalk 会生成一个arm和x86 .apk文件 ,我只得到一个。 我也APK仅约为20.3MB ,解决这个后跳楼~42MB (我想,在我身边不远)。

正确包含XWalk之后,HTML5音频开始工作,并且我的游戏在Android 4.4上的运行极为流畅。 这是由于新的铬浏览器上改进了渲染技术。

修复

cordova plugin remove cordova-plugin-crosswalk-webview
#delete mentions of 'xwalk' from config.xml
cordova plugin add cordova-plugin-crosswalk-webview --save #ensure plugin gets saved to config.xml

重新构建。 如果仍然无法正常工作(没有手臂和x86 apk,aps仍然很小),请在构建/输出目录中删除旧的apk,然后重新构建

这应该是Chrome WebView的自动播放问题,请参见此处Android KitKat(4.4)视频自动播放在webview中不再起作用

但是对于Crosswalk,默认情况下已经启用了自动播放功能,只需使用最新的Crosswalk二进制文件仔细检查您的样本,它就可以正常工作。 https://download.01.org/crosswalk/releases/crosswalk/android/canary/8.36.165.0/arm/crosswalk-cordova-8.3​​6.165.0-arm.zip

您是否尝试手动添加

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

在AndroidManifest.xml中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM