Greasemonkeyスクリプトから@requireで呼び出せるライブラリ第2弾。
これは何?
ニコニコ動画のFlashプレーヤーをGreasemonkeyスクリプトから操作するためのライブラリです。
@requireで読み込むだけで、以下のような各種操作が可能になります。
- 動画情報の取得(再生時間、コメント取得用URL、フィルター情報、など)
- 動画読み込み完了後の関数実行
- 通常のFlashプレーヤーとProxomitron(オミトロン)を自動的に判別(違いを気にしないで済む)
- 再生操作(再生、一時停止、停止)
- シーク操作
- ボリューム調整(ミュート含む)
- リピート ON/OFF
- コメント表示 ON/OFF
- 全画面表示 ON/OFF
使い方(組み込み方)
ライブラリの呼び出し方と、組み込まれるオブジェクト・メソッドを説明します。
呼び出し方法
以下の2ステップで、本ライブラリをあなたのニコニコ動画用Greasemonkeyスクリプトへを組み込むことができます。
STEP1: @requireによる読み込み
あなたのGreasemonkeyスクリプトの冒頭にあるメタデータ部分(// ==UserScript== 内)に以下の1行を追加します。
// @require http://svn.coderepos.org/share/lang/javascript/userscripts/GM_Libs/noriaki/NicoNicoPlayerWrapper/NNPW-20080824.1.js
STEP2: NicoNicoPlayerオブジェクトの生成
あなたのGreasemonkeyスクリプト内でNicoNicoPlayerオブジェクトを生成します。典型的な使い方は以下のとおりです。
var player = new NicoNicoPlayer(); player.onReady(main);
上記の呼び出しでは、動画(Flashプレーヤー)の再生準備が整った時点でmain関数が呼び出されます。
このとき、main関数の引数には、動画情報をオブジェクトとして渡し、main関数にNicoNicoPlayerオブジェクトをbindします。
同様に、無名関数を利用すると、以下のように書くことができます。
var player = new NicoNicoPlayer();
player.onReady(function(video_info) {
video_info.l; // 動画の長さ(秒)
video_info.ms; // 動画コメント取得用URL
this.seek(40); // 動画の40秒付近へジャンプ
this.fullscreen(true); // 全画面表示
});
サンプルのGreasemonkeyスクリプトを作りましたので、そちらも参考にしてください。
nico_nico_player_controller_sample.user.js
使えるメソッド一覧
基本的に各メソッドは、引数を与えて呼び出すとその値をSetし、引数を与えずに呼び出すとGetするという思想です。
- onReady(Function callback)
- 引数に与えた関数を、動画の再生準備が整ってから実行する。
- play()
- 動画の再生を開始する。
- pause()
- 動画の再生を一時停止する。
- togglePause()
- 再生中なら一時停止、一時停止中なら再生する。
- status()
- 動画の再生状況を返す。以下の値のいずれかが返る。
- end
- buffering
- seeking
- playing
- load
- connectionError
- disconnected
- stopped
- paused
- val([String or Object key [, Any value]])
- Flashプレーヤー内にセットされている変数を読み書きする。引数が一つの場合、その名前の引数の値を返し、引数が二つの場合、変数keyに値valueをセットする。
引数を与えずに呼び出した場合は、利用できる変数一覧が返る。 - seek([Integer pos])
- 動画のシークを操作する。引数なしの場合、呼び出されたときの再生経過時間(秒)をIntegerで返す。引数付きで呼び出された場合、その秒数付近までジャンプする。(0未満、動画長より大きな数が与えられたときは範囲内の最も近い値が利用される)
- mute([Boolean on])
- ミュート状態をセットする。引数がtrueのときミュート。
- toggleMute()
- ミュートのON/OFFを切り替える。
- volume([Integer no])
- ボリュームを操作する。引数は0~100の整数で音量(%)を指定する。引数を指定せずに呼び出した場合は、現在の音量(%)を返す。
- commentVisible([Boolean on])
- コメントの表示状態をセットする。引数がtrueのときコメント表示状態。
- toggleCommentVisible()
- コメント表示状態のON/OFFを切り替える。
- repeat([Boolean on])
- リピートのON/OFFをセットする。引数がtrueのときリピートON
- toggleRepeat()
- リピートのON/OFFを切り替える。
- fullscreen([Boolean on])
- 全画面表示の状態をセットする。引数がtrueのとき全画面表示。
- toggleFullscreen()
- 全画面表示のON/OFFを切り替える。
- size([Float or String size]) ※テスト実装
- 動画再生画面そのもののサイズを、0.5や"400x300"(横x縦)という形式で指定する。引数を指定せずに呼び出した場合、元の大きさに戻す。
- getInfo()
- 動画情報を取得して返す。
ライブラリを使って、心地よいニコニコ動画用Greasemonkeyスクリプト開発を!
こんな機能が欲しい、ここの実装はこうした方が良い、などありましたらお気軽にコメント・トラックバック・ブックマークコメントにてお知らせください。
また、CodeReposで直接コミットしていただくのも大歓迎です。

コメントする