ニコニコ動画七月版プレイヤーの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})();