<amp-audio> - 音声プレーヤーを表示する
公開日:
AMPのamp-audioは、音声プレーヤーを表示するための要素です。
概要
- 名前
- amp-audio
- 可用性
- Stable (安定)
- サポートするレイアウト
- fixed,fixed-height,nodisplay
- 必要なスクリプト
<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-0.1.js"></script>
- 検証
- https://github.com/ampproject/amphtml/blob/master/extensions/amp-audio/0.1/validator-amp-audio.protoascii
- ドキュメント
- https://www.ampproject.org/docs/reference/extended/amp-audio.html
属性
autoplay
この属性を付けると、ブラウザがサポートしている場合は自動的に再生開始される。論理属性。
loop
この属性を付けると、ループして再生される。論理属性。
muted
この属性を付けると、デフォルトでミュート状態になる。論理属性。
共通属性
AMPの全てのタグで利用できる共通属性を指定できます。
説明
ライブラリの読み込み
amp-audioを利用するには、専用のライブラリを読み込む必要があります。
HTML
<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-0.1.js"></script>
複数のソース
HTMLと同じく、source要素を子要素に含めることで複数のソースを用意できます。ブラウザは上から順に調べていき、最初に対応しているフォーマットのファイルを再生します。例えば下記は、mp3に対応していたらmp3を、wavに対応していなかったらwavを再生します。2017年現在は、mp3に非対応していないブラウザの方が珍しいので利用する機会は少ないと思います。
HTML
<amp-audio>
<source type="audio/mpeg" src="/audio.mp3">
<source type="audio/wav" src="/audio.wav">
</amp-audio>
フォールバック
fallback属性を付けた要素が子要素にあると、音声プレーヤーに対応していないブラウザで閲覧した場合、それが代わりに表示されます。fallback属性は論理属性なので、値は必要ありません。
HTML
<amp-audio src="/audio.mp3">
<p fallback>音声プレーヤーに対応していません…。</p>
</amp-audio>
サンプルコード
HTML
<!doctype html>
<html amp>
<head>
<meta charset="utf-8">
<title>【デモ】<amp-audio> - 音声プレーヤーを表示する</title>
<link rel="canonical" href="https://syncer.jp/Web/AMP/Component/amp-audio/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<style amp-custom>
body {
padding: 12px ;
background-color: #fff ;
}
</style>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "NewsArticle",
"headline": "記事のタイトル",
"image": [
"eyecatch.jpg"
],
"datePublished": "2017-08-23T00:00:00+0900"
}
</script>
<script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-0.1.js"></script>
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<amp-audio
src="/audio/1.mp3">
</amp-audio>
</body>
</html>