Node.jsを使わないといけないわけじゃないけど、
サーバーサイドでメディアプレーヤーをいじれると楽しいよねというわけで。
やり方
(Ubuntuの場合)
- vlcをインストールする
$ sudo apt-get install vlc
- vlcを起動する
- メニューバーからツール/設定を選ぶ
- 設定の表示を「シンプル」から「すべて」に変更する
- メインインタフェース/Luaを選ぶ
- Lua Telnetにパスワードを設定して保存する
- メニューバーから表示/インタフェースの追加/Telnetを選択する
- Node.jsでtelnet接続を行って、動画の再生コマンドを送信する
サンプルコード
(パスワードに'admin'を設定した場合)
var net = require('net');
var options = {
host: 'localhost',
port: 4212
};
var client = net.connect(options);
client.on('connect',function() {
client.write('admin\r\n'); // パスワード
client.write('stop\r\n'); // 再生中のファイルを停止
client.write('clear\r\n'); // 再生キューをクリアする
client.write('enqueue file:///home/hoge/hogehoge.mpg\r\n'); // 再生キューにファイルを追加する
client.write('play\r\n'); // 再生開始
client.end();
});
※注意点
コマンドによっては受け付けてから実行されて次のコマンドを受け付けられるようになるまでに時間が必要なものもある。play、pause、seek系は特に。この時間帯に送ってしまったコマンドは無視される。のでこれ系のコマンドの前はsetTimeoutとかを駆使して適切にwaitをつけてあげる必要がある。