ニコニコ動画七月版プレイヤーのAPI
http://blog.nicovideo.jp/2010/07/post_257.phpで告知されていたプレイヤーのAPIを確認しました。
document.getElementById("flvplayer").ext_*()
で実行します。
- ext_play(boolean)
- trueなら再生。falseなら停止。
- ext_setPlayheadTime(number)
- number秒に頭だし。
- ext_setMute(boolean)
- ミュートのオンオフ。
- ext_setVolume(number)
- ボリューム設定(0〜100)。
- ext_setCommentVisible(boolean)
- コメント表示のオンオフ。
- ext_setRepeat(boolean)
- リピートのオンオフ。
- ext_setVideoSize(string)
- fitなら全画面、normalなら通常画面。
- ext_isMute()
- ミュート状態をbooleanで。
- ext_getVolume()
- ボリュームを0〜100で。
- ext_isCommentVisible()
- コメント表示状態をbooleanで。
- ext_isRepeat()
- リピート状態をbooleanで。
- ext_getVideoSize()
- 画面の表示をfitかnormalという文字列で。
- ext_getStatus()
- ビデオの状況を文字列で。映像が終了していたらend、ポーズ状態ならpaused、再生中ならplaying、シーク中ならseeking、読み込み中(再生中ではない)ならload、それ以外はstoppedになります。昔は状態が少しバグっていた気がします(要確認)。
- ext_getPlayheadTime()
- 現在の再生位置を秒単位の整数で返します。
- ext_getTotalTime()
- 動画の長さを秒単位の整数で返します。
- ext_isEditedOwnerThread()
- 投稿者コメントが投稿可能かどうかをbooleanで。
- ext_sendLocalMessage(string, string, number)
- 内容、コマンド、書き込み時間でコメント投稿します。
- ext_getLoadedRatio()
- ダウンロードの進行状況を0〜100で返します。
- ext_sendOwnerMessage(string, string, number)
- 内容、コマンド、書き込み時間で投稿者コメント投稿します。
- ext_setInputMessage(string, string)
- 内容、コマンドをプレイヤーの入力枠に挿入します。
- ext_getThreads(string)
- 動画の情報をwindow[string]という関数をコールバック引数に取って返します。
- ext_getComments(string, number)
- 動画のコメントをwindow[string]という関数をコールバック引数に取って指定件数分返します。
なんかもっと面白いAPIがあるかと思っていた。
プレイヤーから呼び出される使えそうなコールバック
- onNicoPlayerReady
- setPlayerStatus
- onNicoPlayerStatus
- toggleMaximizePlayer
適当なラッパー
javascript:(function(){function NP(){this.fp=document.getElementById("flvplayer")}function NPG(g,s){return function(v){if(!s||v===void 0)return this.fp["ext_"+g]();this.fp["ext_"+s](v)}}NP.prototype={play:NPG("getStatus","play"),seek:NPG("getPlayheadTime","setPlayheadTime"),mute:NPG("isMute","setMute"),volume:NPG("getVolume","setVolume"),resize:NPG("getVideoSize","setVideoSize"),length:NPG("getTotalTime"),repleat:NPG("isRepeat","setRepeat"),comment:NPG("isCommentVisible","setCommentVisible"),loaded:NPG("getLoadedRatio")};this.np=new NP})();