然后去远足
然后去远足
  • 发布:2016-10-24 16:07
  • 更新:2016-10-25 07:17
  • 阅读:3655

audio、video 标签无法使用 JS 控制播放

分类:Native.js

页面中使用了 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 了。但依然不能自动播放,还是如上的那个错误。请问有其他解决方案吗?

2016-10-24 16:07 负责人:无 分享
已邀请:
得推网络科技

得推网络科技 - PHP全栈开发,需要外包可以@我

加个autoplay

该问题目前已经被锁定, 无法添加新回复