amp-audio
描述
替换 HTML5 音频标签。
必需脚本
<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-1.0.js"></script>
<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-1.0.js"></script> <link rel="stylesheet" href="https://cdn.ampproject.org/v0/amp-audio-1.0.css">
用法
将 amp-audio
组件与直接 HTML5 音频文件嵌入一起使用。
amp-audio
组件在运行时确定的时间加载其 src
属性指定的音频资源。它可以像标准的 HTML5 audio
标签一样进行控制。与 AMP 文件中的所有嵌入式外部资源一样,音频是“延迟”加载的,只有当 amp-audio
元素在视口中或附近时才会加载。
amp-audio
组件最多接受三种类型的 HTML 节点作为子节点
source
标签:就像在 HTML<audio>
标签中一样,您可以添加<source>
标签子节点以指定要播放的不同源媒体文件。- 音频开始之前的占位符:一个或零个直接子节点可以具有
placeholder
属性。如果存在,此节点及其子节点将形成一个占位符,该占位符将显示在音频之前。单击或点击amp-audio
容器内的任何位置都将用音频本身替换占位符。 - 如果浏览器不支持 HTML5 音频,则回退:一个或零个直接子节点可以具有
fallback
属性。如果存在,此节点及其子节点将形成内容,如果用户的浏览器不支持 HTML5 音频,则会显示该内容。
例如
<amp-audio width="400" height="300" src="https://yourhost.com/audios/myaudio.mp3" > <div fallback> <p>Your browser doesn’t support HTML5 audio</p> </div> <source type="audio/mpeg" src="foo.mp3" /> <source type="audio/ogg" src="foo.ogg" /> </amp-audio>
属性
src
如果不存在 <source>
子节点,则为必需。必须是 HTTPS。
preload
如果存在,则在 html <audio>
标签中设置 preload 属性,该属性指定作者是否认为应在页面加载时加载音频文件。
autoplay
如果存在,则该属性表示音频将在准备好后立即开始播放。
loop
如果存在,音频将在到达结尾后自动循环返回到开头。
muted
如果存在,默认情况下将使音频静音。
controlsList
与 HTML5 音频元素的 controlsList 属性相同。仅某些浏览器支持。有关详细信息,请参见 https://mdn.org.cn/en-US/docs/Web/API/HTMLMediaElement/controlsList。
媒体会话属性
amp-audio
实现了 媒体会话 API,使开发人员可以指定有关正在播放的音频文件的更多信息,以显示在用户设备的通知中心中(以及播放/暂停控件)。
示例
<amp-audio width="400" height="300" src="https://yourhost.com/audios/myaudio.mp3" artwork="https://yourhost.com/artworks/artwork.png" title="Awesome music" artist="Awesome singer" album="Amazing album" > <source type="audio/mpeg" src="foo.mp3" /> </amp-audio>
artwork
用作音频艺术作品的 PNG/JPG/ICO 图像的 URL。如果不存在,MediaSessionAPI Helper 将使用 schema.org
定义中的 image
字段、og:image
或网站的 favicon
。
artist
(字符串)表示音频的作者。
album
(字符串)表示音频摘自的专辑。
title
(字符串)公共属性 的一部分,同时也用作 MediaSession 通知中显示的音频名称。如果未提供,则 MediaSessionAPI Helper 将使用 aria-label
属性或回退到页面的标题。
分析
AMP 音频分析收集有关用户如何与 AMP 文档中的音频交互的数据。AMP 音频扩展在其生命周期中发出分析事件。可以使用 audio-*
触发器通过分析配置报告这些事件。现在支持两个分析事件:audio-play
和 audio-pause
。
有关 amp-analytics 配置的详细信息,请参见 AMP Analytics 组件。
音频播放触发器("on": "audio-play"
)
当用户单击播放或自动播放开始或恢复时,将触发 audio-play
触发器。使用这些配置来触发此事件的请求。
"triggers": { "audioPlay": { "on": "audio-play", "request": "event", "selector": "#audio1" } }
音频暂停触发器("on": "audio-pause"
)
当用户单击暂停、自动播放暂停或音频到达结尾时,音频停止播放时会触发 audio-pause
触发器。使用这些配置来触发此事件的请求。
"triggers": { "audioPause": { "on": "audio-pause", "request": "event", "selector": "#audio1" } }
验证
请参见 AMP 验证器规范中的 amp-audio 规则。
您已经阅读过本文档十几次,但它并没有真正涵盖您的所有问题?也许其他人也有同样的感受:在 Stack Overflow 上与他们联系。
转到 Stack Overflow 发现错误或缺少功能?AMP 项目强烈鼓励您的参与和贡献!我们希望您成为我们开源社区的持续参与者,但我们也欢迎您为自己特别感兴趣的问题做出一次性贡献。
转到 GitHub