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

HTML5 - Check if autoplay is allowed

本文关键字:自动播放 是否 检查 HTML5      更新时间:2023-09-26

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

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

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

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

仅仅播放甚至缓冲歌曲并不是特别公平,当人们出于其他原因(例如检查更新,共享链接)而进入该网站的可能性很小时。 人们可以在使用移动网络的页面上,带宽有限,这些大小的下载不应该在背后偷偷摸摸。

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

以下是自动播放中没有音乐的原因的概述

相反,我个人非常喜欢的网站,在自动播放中大量使用背景音乐

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

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

  • 等待
  • 寻求
  • 寻求
  • 结束
  • 加载的元数据
  • 加载的数据
  • 可以播放
  • 可以播放
  • 时间更新
  • 暂停
  • 费率变化
  • 体积变化
  • 暂停
  • 停滞

您目前可能会做一些类似的事情:

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

但是,一旦您在某些时候想以其他方式切换播放器或发生其他事情(例如它停止),就会中断,因此最好在一个地方收听事件并更新您的 GUI,并在另一个地方控制播放(如启动/停止播放器)。