起動オプション


概要

起動オプション(コマンドライン引数)を指定することで、外部ソフトや動画情報ウィンドウでのスクリプトなどからNicoPlayerの起動時の設定や、起動しているNicoPlayerへの操作を行うことが出来ます。

引数はNicoPlayerへのパスの後に記述し、複数の場合はスペースで区切ります。パスにスペースが含まれていると引数を上手く分割できない場合があるので、パスを指定する場合は"..."のようにダブルクォーテーションで囲うようにします。

書式:
"(NicoPlayerのインストールフォルダパス)\NicoPlayer.exe" 引数1 引数2...

動画情報ファイルでも設定することができます。

メッセージ送信による起動オプションの指定

外部アプリからコマンドライン引数を使ってコマンドを指定する方法以外に、WM_COPYDATAメッセージを送信することでもNicoPlayerにコマンドを送ることが出来ます。
コマンドライン引数を使った指定に比べ再度NicoPlayer.exeを読み出す必要がないためオーバーヘッドが小さくて済みます。
以下にC++からの呼び出しの例を示します。
#include <windows.h>
#include <string>

// NicoPlayerのウィンドウを探しコマンドを送信
bool NicoPlayer_SendCommand( const std::wstring &sCommand )
{
	static const DWORD INDEX_COMMANDLINE = 0;

	HWND hWndNicoPlayer = FindWindow( L"CNicoPlayer", NULL );
	if( !hWndNicoPlayer ){ return false; }

	std::wstring sSendData;
	sSendData = L"cmd: " + sCommand;	// cmd: = dummy

	COPYDATASTRUCT cdsData;
	cdsData.dwData = INDEX_COMMANDLINE;
	cdsData.cbData = sizeof( WCHAR ) * ( (UINT)sSendData.size() + 1 );
	cdsData.lpData = (LPWSTR)sSendData.c_str();
	return SendMessage( hWndNicoPlayer, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cdsData ) != 0;
}

以下のように呼び出してコマンドを送信します。
// 次のファイルを再生
NicoPlayer_SendCommand( L"player -next" );

引数

ダウンロード

リストに追加

URL [オプション]

[オプション]には以下の内容が指定できます。
-movie 動画を保存
-comment コメントを保存
-info 動画情報を保存
-thumbnail サムネイルを保存
-addlist プレイリストに追加
-playafter ダウンロード後再生
-createdir フォルダを作成
-afterexit ダウンロード後ソフト終了
-onlyadd リストに追加のみ(すぐにDL開始しない)
savepath="パス" 保存先パス
log="日時" 過去ログ指定※1
※ :オプションが何も指定されなかった場合はダウンロードウィンドウでの現在の設定内容が適用されます
※1:日時の指定は "年/月/日 時:分:秒"形式または、UNIX時間を直接指定できます。(時:分:秒は省略可能)

ファイルからリストに追加

".datファイルパス"

プレイリスト

ファイル読み込み

".m3uファイルパス"

ファイルからリストに追加

".m3uファイルパス" -addlist

ファイル,フォルダをリストに追加

"パス" -addlist
※フォルダパスを指定した場合は、リストに追加するファイルの種類を選択するダイアログが表示されます

リストをクリア

playlist -clear

再生操作・コメント

ファイルを再生

"ファイルパス"

ファイルを再生-コメントの読み込み数を指定

"ファイルパス" comment_readnum="読み込み数"

ファイルを再生-コメントの読み込み開始位置を指定

"ファイルパス" comment_readstart="読み込み開始位置"
※コメントファイル内での上から数えた0から始める位置です

ファイルを再生-コメントの時間軸変更を指定

"ファイルパス" comment_shift="ずらす時間[ms]"
※マイナス方向にずらす場合は"-5000"のように-記号を付けて表します

再生開始

player -play

一時停止

player -pause

停止

player -stop

前へ

player -prev

次へ

player -next

音量

player -volume percent=音量(%)

速度

player -rate val=速度(実数値)

シーク

player -seek pos=位置(ミリ秒)
player -seek percent=位置(%)

コメントの投稿

player -postcomment comment="コメント" command="コマンド" vpos="動画上での位置(1/100秒)" id="動画ID"
※vposを省略すると現在再生中の動画時間が指定されます
※idを省略すると現在再生中の動画が指定されます
※コメントでの改行は<br>を入力すると置き換えられます
※コメントでの"(ダブルクォーテーション)は \" を入力すると置き換えられます

コメントの時間軸変更

player -shift time="ずらす時間[ms]"
※マイナス方向にずらす場合は"-5000"のように-記号を付けて表します

コメントの透明度を設定

player -commentalpha percent=アルファ値(%)

動画情報ウィンドウ

ウィンドウの表示を変更

videoinfo -move href="パス"

情報ウィンドウ

メッセージを追加

info msg="メッセージ"
(-inactiveオプションと併用するとメッセージ追加時に情報ウィンドウを表示状態にしません)

各種情報を取得

外部アプリとの連携の際に使用します。書式は以下の通りです。
get [オプション] hwnd=ウィンドウハンドル id=識別子
指定したウィンドウへWM_COPYDATAメッセージを送信します。データ形式は文字列型(LPCWSTR)です。COPYDATASTRUCT構造体のdwData値はid=を指定することで変更できます。(省略すると0になります)

hwndにVIDEOINFOを指定することで動画情報ウィンドウHTML内タグ<div id="exchange" style="display:none;"></div>のinnerTextに値を設定できます。
これにより動画情報ウィンドウのJavaScriptからNicoPlayerの各種情報の取得が可能になります。

[オプション]には以下の内容が指定できます。

-version NicoPlayerのバージョン(x.xx)を取得
-softdir NicoPlayerがあるフォルダパスを取得
-playfile 再生開始時に指定したファイルパスを取得
-mediafile 再生中のメディアファイルパスを取得
-commentfile 再生中のコメントファイルパスを取得
-infofile 再生中のメディアファイルに対応した動画情報ファイルを取得
-time 現在の再生時間(ms)を取得
-length メディアの長さ(ms)を取得
-mediastate メディアの再生状態("Stopped", "Paused", "Running", "")を取得
-playlist プレイリストデータをJSON形式で取得

その他

外部アプリ実行

exec ...
execのスペース後にある文字列を全てコマンドラインとして解釈し実行します(-inactive, -echoは削除されます)

SendMessage()実行

sendmsg [パラメータ]

[パラメータ]には以下の内容が指定できます。
msg=Msg値 メッセージ
wparam=wParam値 第1パラメータ
lparam=lParam値 第2パラメータ

SendMessage()関数についてはこちらを参照して下さい。

更新で使用した一時ファイルを削除

other -deletetemp
※更新後の次回起動時に自動的に実行されます

NicoPlayerのウィンドウをアクティブにしない(全てのオプションと併用可能)

-inactive

NicoPlayerに渡されたコマンド内容を情報ウィンドウに表示する(全てのオプションと併用可能)

-echo

ダウンロード中でもダイアログを表示させず強制終了する

-exitforce

使用例

コメントのみダウンロード

http://www.nicovideo.jp/watch/sm***** -comment

保存先を指定して動画をダウンロード

http://www.nicovideo.jp/watch/sm***** -movie savepath="C:\Download"
※上記ではC:\Downloadフォルダに保存

動画をダウンロードした後ソフトを自動的に終了させる

http://www.nicovideo.jp/watch/sm***** -movie -afterexit

動画の30%の位置にシーク

player -seek percent=30

動画の開始から5秒の位置にシーク

player -seek pos=5000

指定したファイルを5秒目の位置から再生

"ファイルパス" player -seek pos=5000

指定したファイルを再生+コメントの時間軸を5秒手前にずらす

"ファイルパス" comment_shift=-5000
※"ファイルパス" player -shift time=-5000でも可

指定したファイルを再生+100個目から250個分のコメントを読み込む

"ファイルパス" comment_readnum=250 comment_readstart=100

現在のリストをクリアして新たにファイルから項目を追加

下記の内容を2回に分けて実行します。
playlist -clear
"C:\list.m3u" -addlist
※上記ではC:\list.m3uファイルから項目を追加

プレイリストの表示を切り換える(sendmsg使用)

sendmsg msg=273 wparam=8800 lparam=0
※273はWM_COMMAND、8800はID。lparam=0は省略可能。

WM_COPYDATAでNicoPlayerがあるフォルダパスを取得

get -softdir hwnd=(自ウィンドウハンドル)

上記のコマンドをNicoPlayerに送信するとNicoPlayerからWM_COPYDATAで対応する値が送られてきます。
WM_COPYDATAメッセージで以下のように処理することで値を受け取ることが出来ます。
COPYDATASTRUCT* pCopyDataStruct = (COPYDATASTRUCT*)lParam;
LPCWSTR lpSoftDir = (LPCWSTR)pCopyDataStruct->lpData;
// 表示テスト
MessageBox( NULL, lpSoftDir, NULL, MB_OK );

コメント

  • LpdcUGjWoDDCXxJQIlI -- picoele (2009-02-28 23:33:51)
  • MEeDyEbyANOmxFY -- ivtrmcrgc (2009-05-13 20:16:44)
名前:
コメント:

|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|