页面中使用了 audio 和 video 标签来播放多媒体文件(不用 plus.audio 的原因一是 iOS 不支持网络路径、二是没提供获取缓冲进度的接口)。
<audio id="audio" src="test.mp3"></audio>
document.getElementById("audio").play();
iOS 上没什么问题,但在安卓中使用 JS 控制播放的时候遇到了一个问题,在控制台输出错误:
Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture.
经过一番查找发现这样一个答案:
http://stackoverflow.com/questions/32513157/android-failed-to-execute-play-on-htmlmediaelement-api-can-only-be-initia
遂想到使用 Native.js 来实现:
var nvw = plus.android.currentWebview();
var settings = plus.android.invoke(nvw, "getSettings");
plus.android.invoke(settings, "setMediaPlaybackRequiresUserGesture", false);
代码执行没什么问题,而且再执行 getMediaPlaybackRequiresUserGesture 时也能看到确实被赋值为 false 了。但依然不能自动播放,还是如上的那个错误。请问有其他解决方案吗?
望月孤魂
不起作用
2017-01-13 10:38