HTML5 - 检查是否允许自动播放

时间:2015-01-30 19:40:22

标签: javascript html5 audio

我的网站使用自动播放播放背景音乐。我让它使用我的自定义控件进行播放和暂停。现在,我想根据发生的事情设置初始状态。如果音乐即将播放,则应显示暂停图标,否则(例如在移动设备上)播放图标。

我会使用audio.paused布尔值,但在加载音频之前它总是为假。

我会使用audio.autoplay值,但对我来说总是如此,即使是在不支持它的设备上也是如此。

有没有干净的方法知道音频是否会被播放?我希望它与autoplay属性保持同步,所以如果我决定删除它,状态应该始终显示播放图标。

1 个答案:

答案 0 :(得分:0)

播放甚至缓冲歌曲并不是特别公平,因为人们可以出于其他原因(例如检查更新)分享链接时,网站上有一丝机会。人们可以在带有移动网络的页面上,带宽有限,这些尺寸的下载不应该开始偷偷摸摸。

编辑:一些额外的参考资料

以下是the reasons not to have music on autoplay

的概述

相反,我个人非常喜欢great use of background music on autoplay

的网站

但是,如果您已经构建了自己的播放器并希望将其作为页面的一项功能,那么将该播放器设置为自动播放不仅会使您自己的工作贬值,还会完全破坏您的设计。相反,你可以相信那些想要听音乐的人会识别你的音频播放器并使用它。

要完全实现自定义播放器GUI,您可能需要侦听播放器元素上的所有音频事件并相应地更新视图。您正在寻找的活动是" canplaythrough"但你可能也想对至少大多数其他事件做出反应。那些事件是:

您目前可能会采取行动

view.showPlayButton();
player.play();

但是,只要您在某个时刻想要以其他方式切换您的播放器或其他事情发生时就会中断,例如它会停滞不前,所以最好在一个地方听取事件并更新您的GUI,并控制播放(比如开始/停止玩家)在另一个。