VimeoのPlayer APIを使ってプレーヤーを操作する
VimeoのPlayer APIについて少し調べる機会がありましたので、使い方などをまとめてみます。
■目次
1. 基本的な埋め込み
まずは、HTMLにPlayer APIを読み込む記述を追加します。
今回はjQueryで記述するので、合わせてjQueryも読み込んでおきます。
■HTML
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> <script src="https://player.vimeo.com/api/player.js"></script>
次にプレーヤーを操作する記述を追加していきますが、VimeoのPlayer APIを使用する方法がいくつかありますので、それぞれ紹介していきます。
1-1. HTMLにプレーヤーのタグを埋め込んでおく方法
HTML内にプレーヤーのタグ(iframe)を直接埋め込んで、そのプレーヤーをそのままPlayer APIで操作します。
今回はJavaScriptで指定しやすいように、iframeにid="sample"を追加しておきます。
■HTML
<iframe id="sample" src="https://player.vimeo.com/video/76979871" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
プレーヤーを操作するための記述を追加します。
今回はプレーヤー再生時にconsoleを表示するようにしてみます。
■JavaScript
$(function() { var player = new Vimeo.Player($('#sample')); // プレーヤー再生時にconsole表示 player.on('play', function() { console.log('再生'); }); });
これでプレーヤー再生時にconsoleが表示されるようになりました。
サンプルページ
ちなみに今回はjQueryで記述するようにしていますが、jQueryを使わなくても記述可能です。
jQueryを使わない場合は以下のようになります。
■JavaScript
var player = new Vimeo.Player('sample'); // プレーヤー再生時にconsole表示 player.on('play', function() { console.log('再生'); });
1-2. JavaScriptで指定して埋め込む方法
HTML内にidを指定した空のdivを配置して、そのdiv内にJavaScriptでプレーヤーのタグ(iframe)を埋め込みます。
■HTML
<div id="sample"></div>
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { id: 76979871, // VimeoのID width: 640 // プレーヤーの幅 }; var player = new Vimeo.Player($('#sample'), options); // プレーヤー再生時にconsole表示 player.on('play', function() { console.log('再生'); }); });
上記ではVimeoのIDで動画を指定しましたが、VimeoのURLでも指定することができます。
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { url: 'https://vimeo.com/76979871' // VimeoのURL }; var player = new Vimeo.Player($('#sample'), options); // プレーヤー再生時にconsole表示 player.on('play', function() { console.log('再生'); }); });
1-3. data属性を指定して埋め込む方法
Vimeoを埋め込む空divにdata属性を追加して、プレーヤーのタグ(iframe)を埋め込みます。
■HTML
<div id="sample" data-vimeo-id="76979871"></div>
■JavaScript
$(function() { var player = new Vimeo.Player($('#sample')); // プレーヤー再生時にconsole表示 player.on('play', function() { console.log('再生'); }); });
JavaScriptで指定して埋め込んだ時と同じように、IDではなくURLで指定することもできます。
■HTML
<div id="sample" data-vimeo-url="https://vimeo.com/76979871" data-vimeo-width="640"></div>
2. メソッド
2-1. プレーヤーの操作
再生や一時停止、シークバーの移動、音量調整などを操作してみます。
■HTML
<div id="sample"></div> <button id="play">再生</button> <button id="pause">一時停止</button> <button id="prev">10秒前へ</button> <button id="next">10秒先へ</button> <button id="volup">音量アップ</button> <button id="voldown">音量ダウン</button> <button id="mute">ミュート</button>
今回はplay()のメソッド以外では省略していますが、各メソッドでエラーが発生していないかを調べる場合、catch()を使用します。
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { id: 76979871 // VimeoのID }; var player = new Vimeo.Player($('#sample'), options); // 再生 $('#play').on('click', function() { player.play().then(function() { console.log('再生'); }).catch(function(error) { console.log(error); }); }); // 一時停止 $('#pause').on('click', function() { player.pause().then(function() { console.log('一時停止'); }); }); // 10秒前へ $('#prev').on('click', function() { // 現在の秒数を取得 player.getCurrentTime().then(function(seconds) { console.log('現在の秒数:', seconds); // 10秒前に戻す player.setCurrentTime(seconds - 10).then(function(seconds) { console.log('変更後の秒数:', seconds); }); }); }); // 10秒先へ $('#next').on('click', function() { // 現在の秒数を取得 player.getCurrentTime().then(function(seconds) { console.log('現在の秒数:', seconds); // 10秒先に進める player.setCurrentTime(seconds + 10).then(function(seconds) { console.log('変更後の秒数:', seconds); }); }); }); // 音量アップ $('#volup').on('click', function() { // 現在の音量を取得 player.getVolume().then(function(volume) { console.log('現在の音量:', volume); // 音量を0.1アップする player.setVolume(volume + 0.1).then(function(volume) { console.log('変更後の音量:', volume); }); }); }); // 音量ダウン $('#voldown').on('click', function() { // 現在の音量を取得 player.getVolume().then(function(volume) { console.log('現在の音量:', volume); // 音量を0.1ダウンする player.setVolume(volume - 0.1).then(function(volume) { console.log('変更後の音量:', volume); }); }); }); // ミュート $('#mute').on('click', function() { player.setVolume(0); }); });
2-2. 動画情報の取得
動画の長さやタイトルなどの情報を取得して、consoleに表示してみます。
■HTML
<div id="sample"></div>
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { id: 76979871 // VimeoのID }; var player = new Vimeo.Player($('#sample'), options); // 動画の長さ player.getDuration().then(function(duration) { console.log('動画の長さ;', duration); }); // 動画のタイトル player.getVideoTitle().then(function(title) { console.log('動画のタイトル;', title); }); // 動画のID player.getVideoId().then(function(id) { console.log('動画のID;', id); }); // 動画のURL player.getVideoUrl().then(function(url) { console.log('動画のURL;', url); }); // 動画の字幕情報 player.getTextTracks().then(function(tracks) { console.log('動画の字幕情報', tracks); }); });
3. イベント
プレーヤー読み込み時や再生時に発火するイベントを試してみます。
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { id: 76979871 // VimeoのID }; var player = new Vimeo.Player($('#sample'), options); // 読み込み player.on('loaded', function(data) { console.log('読み込み', data); }); // 再生した時 player.on('play', function(data) { console.log('再生', data); }); // 一時停止した時 player.on('pause', function(data) { console.log('一時停止', data); }); // 最後まで再生した時 player.on('ended', function(data) { console.log('再生終了', data); }); // シークした時 player.on('seeked', function(data) { console.log('シーク', data); }); });
4. オプション
オプションでは自動再生やループ、プレーヤーの表示の設定などが行えます。
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { id: 76979871, // VimeoのID autoplay: true, // 自動再生 loop: true, // ループ color: 'ff0000', // プレーヤーのカラー byline: false, // 投稿者部分の表示 portrait: false, // 左上のVimeoのマークの表示 title: false // タイトルの表示 }; var player = new Vimeo.Player($('#sample'), options); });
data属性で指定することもできます。
■HTML
<div id="sample" data-vimeo-id="76979871" data-vimeo-autoplay="true" data-vimeo-loop="true" data-vimeo-color="ff0000" data-vimeo-byline="false" data-vimeo-portrait="false" data-vimeo-title="false"></div>
■JavaScript
$(function() { var player = new Vimeo.Player($('#sample')); });
5. 複数配置した場合
Vimeoのプレーヤーを複数配置した場合、デフォルトで同時再生を防止するようになっています。
■HTML
<div id="sample"></div> <div id="sample2"></div>
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { id: 76979871 // VimeoのID }; var options2 = { id: 59777392 // VimeoのID }; var player = new Vimeo.Player($('#sample'), options); var player2 = new Vimeo.Player($('#sample2'), options2); });
同時再生するかどうかは、オプションのautopauseで設定できます。
autopauseをfalseにすることで、同時再生するようになります。
■JavaScript
$(function() { // プレーヤーのオプション設定 var options = { id: 76979871, // VimeoのID autopause: false // 同時再生するかどうか }; var options2 = { id: 59777392, // VimeoのID autopause: false // 同時再生するかどうか }; var player = new Vimeo.Player($('#sample'), options); var player2 = new Vimeo.Player($('#sample2'), options2); });
他にも色々な設定ができますので、詳しくは公式のドキュメントをご確認ください。
【参考サイト】