女子小学生と××したい

Webフロントエンド界のゴミクソメンヘラであり続けたい

Youtube Player APIの使い方とか、使ってみての感想とか(佐藤フィルター解説その2)

はい、かるねです。
一応佐藤フィルターで使ったあれこれの話(Youtube Player API その1) - 女子小学生と××したいの続きという意味付けで書いているこの記事なのですが、佐藤フィルターで使ったAPIの説明だけだとあんまり面白くないので、色々調べながら書いてみた

YouTube JavaScript Player API リファレンス - YouTube — Google Developers

↑このコードでは

以外についてはほぼ、APIで用意されているものを網羅できていると思うです
なんかブログ内での口調が定まらなくてアレだな
で、↑のjsdo.itでやっていることとしては

1. 動画の再生(player.playVideo())
2. 一時停止(player.pauseVideo())
3. 指定位置へのシーク(player.seekTo(sec)
4. ミュート/非ミュートの切り替え(player.mute(),player.unMute())
5. 音量の設定(player.setVolume(percentage))
6. 音量の取得(player.getVolume())
7. 現在の動画の再生ステータス(再生中、一時停止中、終了、再生開始待ち等)の取得(player.getState())
8. 動画の長さ(sec)の取得(player.getDuration())
9. 動画URLの取得(player.getVideoUrl())
10. 動画の再生画質の取得(player.getPlaybackQuality())
11. 現在ロードされているバイト数、全体のバイト数の取得(player.getVideoBytesLoaded(),player.getVideoBytesTotal())
12. 現在の経過時間の取得(player.getCurrentTime())

です。上手く使えば、複数の「演奏してみた」動画をセッションさせるとか、ボリュームを線形に推移させて特殊な演出とか、setTimeoutでseekToをがちゃがちゃやってMAD動画風にするとか、色々できそうですね。まずはセッションからやってみようかなー。
ちなみに前述している12項目に関しては特に問題なく使えると思います。そんなに難しいことしてないので。なので本当は1ネタ仕込んでからこのブログ書きたかったんですが、

まぁ、めんどくさくなったんですねwwwwwwwwwwwwww
なんか作ったら紹介します。アイデア募集です。可能そうなら作ります。
今回検証しなかったキュー関数に関しても後々検証して記事書こうと思います。

検証していていまいち分からなかったメソッドが1つだけありまして
player.setPlaybackQuality(suggestedQuality:String):Void
です。
getPlaybackQualityのsetterバージョンで、引数として有効な値はsmall、medium、large、hd720、defaultとリファレンスに書かれています。なんですがいまいち画質が変わらんのです。
「変わってるんだけど気付いてないだけなんじゃないのー?」と最初は思ったんですが、このAPIにはonPlaybackQualityChangeというイベントがあり、このsetPlaybackQualityで画質を変更する、もしくはユーザアクションで動画ウインドウのコントローラから画質を変更した際に発火するという説明がされています。
このイベントにリスナを登録して色々試してみたのですが、ユーザアクションによる変更ではイベントが発火するのにsetPlaybackQualityでは発火しませんでした。
色々調べてみると、player.getAvailableQualityLevels():Arrayというメソッドが用意されており、当該動画で再生可能な画質のリストを配列にして返してくれるというものです。↑のjsdo.itのコードで試すと、返り値は

["hd720", "large", "medium", "small"]

でした。なのでこの4つに関してはsetPlaybackQualityで設定できると思ったんですが………んー。
リファレンスには

この関数を呼び出しても、再生画質が実際に変更されるとは限りません。

ってあるし、もしかすると埋め込み時に設定された推奨画質以外には、基本的には変えて欲しくないっていうスタンスなのかも知れない。それはちょっと都合の良すぎる解釈だけど。というわけで再度調査します

「後で調べる」ばかり先行してしまってよくないとは言え、記事も長くなってきたしこのくらいかなー。嵐が来てるし、こないだみなみけの最終回で保坂が「そら豆とキャベツのクリームパスタ」の話をしていたので、昼飯はそれにしようと思います

ではー