首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android的google上按顺序播放声音(考虑到播放声音的新限制)

在android的google上按顺序播放声音(考虑到播放声音的新限制)
EN

Stack Overflow用户
提问于 2017-11-06 18:39:51
回答 1查看 914关注 0票数 5

我有一个小应用程序,可以播放顺序的声音(一个教学应用程序,播放一个单词的声音)

这可以通过在每个声音停止播放后立即触发事件来实现。类似于:

代码语言:javascript
复制
var sounds = new Array(new Audio("1.mp3"), new Audio("2.mp3"));
var i = -1;
playSnd();

function playSnd() {
   i++;
   if (i == sounds.length) return;
   sounds[i].addEventListener('ended', playSnd);
   sounds[i].play();
}

(来源)

然而,现在android chrome已经对如何播放声音实施了一些新的限制:声音事件都必须由用户操作触发。

所以,当我运行与上面类似的代码时,第一个声音播放,然后我得到

代码语言:javascript
复制
Uncaught (in promise) DOMException: play() can only be initiated by a user gesture.

如何在Android的Chrome上播放在运行时确定的一系列声音?

EN

回答 1

Stack Overflow用户

发布于 2017-11-15 16:22:42

首先,Google在安卓上一直有一个限制,即不允许应用程序在没有用户明确操作的情况下播放HTML音频。然而,在大多数情况下,它不同于股票浏览器处理它的方式。

正如Chromium 所说,其原因是,Autoplay在安卓系统上不受尊重,因为它将花费数据的使用成本。 您可能会在同一个这里上找到更多的细节。 除了这会导致带宽的浪费之外,这也有一定的道理,因为移动设备被用于公共场合和房屋中,在这些地方,来自随机网站的未经请求的声音可能会成为讨厌的

然而,在后来的版本中,这一想法被否决了,Android上的Chrome开始允许自动播放HTML音频和视频。在经过一系列的评论和讨论之后,恢复到原来的状态,使用户必须在Chrome上调用HTML和视频。

这里是我在同一个网站上发现的更多的东西。正如上面所说的,原因是“我们将收集一些关于用户对自动播放视频的反应的数据,以决定是否保留这一限制”。因此,在没有用户操作的情况下,播放选项被恢复。 您还可以在_autoplay和维格上找到更多关于音频和视频的阻塞的信息。

然而,这是我可以建议你尝试的东西,这将帮助你实现你的意愿。你所要做的就是复制这段代码并粘贴到你的Chrome for Android中。这有助于您重置默认设置为的标志,不允许在没有用户交互的情况下播放HTML音频和视频。

chrome://flags/#disable-gesture-requirement-for-media-playbackabout:flags/#disable-gesture-requirement-for-media-playback

如果上面的过程对您没有帮助/工作,您可以这样做:

进入chrome://flagsabout:flags (这将指向chrome://flags)和Enable“禁用媒体播放手势要求”选项(实际上与上面指定的URL相同)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47143562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档