SYNCER

SYNCER

<amp-video> - 動画プレーヤーを表示する

1件

公開日:

AMPのamp-videoは、動画を表示するための要素です。video要素の置き換えです。

概要

名前
amp-video
可用性
Stable (安定)
サポートするレイアウト
fill,fixed,fixed-height,flex-item,nodisplay,responsive
必要なスクリプト
<script async custom-element="amp-video" src="https://cdn.ampproject.org/v0/amp-video-0.1.js"></script>
検証
https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii
ドキュメント
https://www.ampproject.org/docs/reference/amp-video.html

属性

autoplay

この属性を付けると、ブラウザがサポートしている場合は自動的に再生開始される。論理属性。

controls

この属性を付けると、コントローラを表示する。論理属性。

height

指定例: 150

高さ。動画が表示される前にアスペクト比を決定できるよう、指定する必要がある。

loop

この属性を付けると、ループして再生される。論理属性。

muted

非推奨の属性。この属性を付けると、ミュート状態になる。論理属性。

poster

指定例: ./video.jpg

動画の再生前に表示されるサムネイル画像。

src

指定例: ./video.mp4

動画ファイルのURL。HTTPSでなければいけない。公的にキャッシュできるURLでなければならない。リクエストによってはAMP側がURLを書き換えることもある。子要素にsource要素を持たない場合は必須。

width

指定例: 200

横幅。動画が表示される前にアスペクト比を決定できるよう、指定する必要がある。

共通属性

AMPの全てのタグで利用できる共通属性を指定できます。

説明

ライブラリの読み込み

amp-videoを利用するには、専用のライブラリを読み込む必要があります。

HTML

<script async custom-element="amp-video" src="https://cdn.ampproject.org/v0/amp-video-0.1.js"></script>

複数のソース

HTMLと同じく、source要素を子要素に含めることで複数のソースを用意できます。ブラウザは上から順に調べていき、最初に対応しているフォーマットのファイルを再生します。例えば下記は、mp4に対応していたらmp4を、mp4に対応していなかったらwebmを再生します。

HTML

<amp-video
	poster="/video.jpg"
	width="800"
	height="450"
	layout="responsive">
		<source type="video/mp4" src="/video.mp4">
		<source type="video/webm" src="/video.webm">
</amp-video>

フォールバック

fallback属性を付けた要素が子要素にあると、動画プレーヤーに対応していないブラウザで閲覧した場合、それが動画の代わりに表示されます。fallback属性は論理属性なので、値は必要ありません。

HTML

<amp-video
	src="/video.mp4"
	poster="/video.jpg"
	width="800"
	height="450"
	layout="responsive">
		<p fallback>ブラウザが動画の再生に対応していません。</p>
</amp-video>

サンプルコード

HTML

<!doctype html>
<html amp>
	<head>
		<meta charset="utf-8">
		<title>【デモ】<amp-video> - 動画プレーヤーを表示する</title>
		<link rel="canonical" href="https://syncer.jp/Web/AMP/Component/amp-video/">
		<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
		<style amp-custom>
			body {
				padding: 12px ;
				background-color: #fff ;
			}

			.container {
				width: 500px ;
				max-width: 95% ;
			}
		</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-video" src="https://cdn.ampproject.org/v0/amp-video-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>

<div class="container">

	<amp-video
 		src="/video/dog.mp4"
	 	poster="/video/dog.jpg"
		controls
	 	width="800"
	 	height="450"
	 	layout="responsive">
	</amp-video>

</div>

	</body>
</html>

デモを開く

デモ

</head><body>までを含めて下さい。

</body> </html>

<style amp-custom>

</style>