PerlでMPlayerを制御する

mprndはランダム音楽プレーヤである。

はじめに

私のZaurusSL-C3000)には、MusicPlayerと言う結構立派な音楽プレーヤが付いている。
また、MPlayerのフロントエンドであるZPlayerKino2などの素晴らしいものも存在する。
しかし、それらはプレイリストを開くたびに、音楽ファイルからタイトルやアーティストなどの情報を毎回全て読み込むため、プレイリストに含めた音楽ファイルが多ければ多いほど音楽再生ができるまでに時間が掛かってしまい、ネットワークで接続した共有フォルダに保存してある大量の音楽ファイルを扱うことはほとんど無理である。
また、アプリケーションを実行したとき、終了時に再生していた音楽、またはその次から再生を開始する機能が何故か付いていない。
私の音楽の聞き方は(特に仕事中は)無節操で横着なので、大量の音楽ファイルをランダムに再生できれば必要十分であるが、その条件を満たすものは残念ながら存在しないようだ。
そこで作成したのが、ランダム音楽プレーヤのmprnd(エムピーランド)である。

動作条件

mprndはMPlayerのフロントエンドであり、Perlスクリプトで作成されたコンソール上で動作するアプリケーションであり、PuTTYTeraTermなどのTelnetクライアントでも使用可能である。
mprndを実行するためには、以下のパッケージ(またはそれに相当するもの)をインストールする必要がある。

名称 説明
mplayer-bvdd-iwmmxt_1.1.5-1_arm.ipk 阿川さんがZaurus用に最適化したMPlayer
perl_5.6.1-8.3-5_arm.ipk 塚本さんがZaurus用にパッケージ化したPerl
lib-perl-jcode_2.06-1_arm.ipk Zaurus用にリビルドしたCPANモジュールのJcode
lib-perl-term-readkey_2.30-1_arm.ipk Zaurus用にリビルドしたCPANモジュールのTerm::ReadKey
lib-perl-time-hires_1.86-1_arm.ipk Zaurus用にリビルドしたCPANモジュールのTime::HiRes
lib-perl-mp3-tag_0.9708-1_arm.ipk Zaurus用にリビルドしたCPANモジュールのMP3::Tag
lib-perl-mp4-info_1.11-1_arm.ipk Zaurus用にリビルドしたCPANモジュールのMP4::Info

ダウンロード

以下のリンクからipkgファイルをダウンロードして頂きたい。
download:mprnd_0.1-1_arm.ipk

インストール

  1. 動作条件に示したパッケージを各々の説明にしたがってインストールする。
  2. 前述のダウンロードに示したファイルを通常通り「ソフトウェアの追加/削除」でインストールする。
  3. 必要に応じて以降で説明する環境設定を行う。

実行方法

mprndはコンソールで以下のように実行する。

$ mprnd [musicdir|playlist] ...
【musicdir】
音楽ファイルが保存されているディレクトリを指定する。
音楽ファイルの検索は、指定したディレクトリ以下の全てのサブディレクトリを対象に実行される。
検索対象の音楽ファイルは、拡張子が".mp3"、".mp4"、".m4a"、".m4p"のものである。
一度指定したディレクトリの内容は、プレイリスト保存ディレクトリにキャッシュされる。先頭に"--"(ハイフン記号を2つ)を付けると、キャッシュは無視される。
【playlist】
音楽ファイルのパスが保存されているプレイリストファイルを指定する。
環境設定に示すプレイリスト保存ディレクトリに存在する場合は、ファイル名のみを指定することができる。
プレイリストに保存されている音楽ファイルのパスは、音楽ファイルが存在するデバイスと同じキャラクタセットで記述されていなければならない。

環境設定

mprndの動作環境は以下の方法で設定できる。

【プレイリスト保存ディレクトリ】
プレイリストは固定で$HOME/playlist/musicディレクトリに保存される。
これを変更するには以下のようにシンボリックリンクを使う。
$ mkdir $HOME/playlist
$ mkdir /hdd3/Documents/playlist
$ mkdir /hdd3/Documents/playlist/music
$ ln -s /hdd3/Documents/playlist/music $HOME/playlist/music
【画面のキャラクタセット
画面に出力するテキストのキャラクタセットはCHARSET環境変数で決定される。
CHARSET環境変数が設定されていない場合は、LANG環境変数にCHARSET環境変数に指定する文字列が含まれていることで決定される。
どちらの環境変数も有効ではない場合はEUCが設定されているものとする。
CHARSET=<jis|sjis|euc|utf8>

キー操作

mprndでは以下のキー操作が可能である。

キー 説明
Cancel / Esc 終了
音量を上げる
音量を下げる
再生中の曲を10秒戻す
再生中の曲を10秒進める
Enter / OK 一時停止/再開
Space 次の曲を再生

注意事項

  • 音楽再生中にオートパワーオフが働かないように、mprndが動作中のときは電源管理を抑制しているので、思わぬときに電池切れとならないように注意して欲しい。

更新履歴

  • 2007/02/11 Version 0.1-1 … 初回リリース