CheaPlayer
DirectShowを利用して再生のサンプルプログラムに肉付けして自家用メディアプレーヤーを作成。
目次
- ながら再生用に必要な機能を絞り込んだシンプルなメディアプレーヤー。
- ビデオ映像の静止画をキャプチャしてクリップボードへコピーする機能。
- リスト中のファイルのリネーム、移動、コピー、削除などのファイル操作機能。
- 壁紙ビデオモード。
対応メディア
このプログラムはDirectShowを利用しています。
再生可能なメディアは大体WindowsMediaPlayerと同じです。
WMPで再生できればこのプログラムでもOK(のはず)ということです。
amazonでダウンロードしたmp3ファイルも再生できるようになりました。
ただし、CDは場合によってはエラーが出てしまうかもしれませんしDVDには対応していません。
プレイリストの読み込みはm3u、m3u8、pls、wplに対応しています。
プレイリストの書き込みはm3u8の相対パスでの書き込みのみ対応しています。
ffdshowやFLVSplitter、MP4Splitterなどをインストールして利用すればDivXやflv、mp4などのファイルの再生も可能です。
flvファイルを再生させるにはffdshowとFLVSplitterをインストールし、ffdshowのビデオデコーダの設定でFLV1をONにすることで再生できます。
YouTubeの高画質モードのmp4ファイルはffdshowとMP4Splitterをインストールし、ffdshowのビデオデコーダの設定でH.264/AVCをONにし音声デコーダの設定でAACをONにすることで再生できます。
DivXはffdshowのインストールだけでいけます。
ビデオデコーダのDivX関連のコーデックをONにすることで再生できます。
詳しくはそれぞれ
をどうぞ。
動作環境
Windows XP SP3, Windows 7 SP1で動作確認。
Vistaではわかりませんが動くかも知れません。
95,98やmeでは動きません。
インストール
専用のフォルダを作りcheaplayer.exeコピーします。
cheaplayer.exeと同じフォルダには以下のファイルとフォルダが作られます。
- cheaplayer.ini - 設定ファイル。
- cheaplayer.txt - リストを書き出したテキストファイル。
- cheaplayer.wallpaper.bmp - 壁紙ビデオモードでビデオをオーバーレイさせるための設定画像。
- SendToフォルダ - 送るのショートカットが置かれるフォルダ。
レジストリは壁紙モードで動画を再生する場合に壁紙の情報を書き換えます。
アンインストール
専用のフォルダごと削除します。
専用のフォルダを作らなかった場合は以下のファイルとフォルダを削除します。
- cheaplayer.exe - 本体。
- cheaplayer.ini - 設定ファイル。
- cheaplayer.txt - リストを書き出したテキストファイル。
- cheaplayer.wallpaper.bmp - 壁紙ビデオモードでビデオをオーバーレイさせるための設定画像。
- SendToフォルダ - 送るのショートカットが置かれるフォルダ。
レジストリは壁紙モードで動画を再生する場合に壁紙の情報を書き換えます。
それ以外にこのプログラムの設定をレジストリに書き込むことはしません。
CheaPlayer
cheaplayer.exe 2013-03-19:Ver 1.3.21.69
ファイルは圧縮していません。
ダウンロードしてそのまま実行できます。
ソースコード
ソースコードは公開しているというよりもバックアップ目的です。
なので見通しは悪いですしこれらとは別に共通ライブラリも全部ダウンロードしてセットアップしないとコンパイルできません。
普段使い用の機能限定メディアプレイヤー。
ローテクTipsのDirectShowで再生のサンプルプログラムを基に肉付け。
※課題
- 外部プログラムを起動するときにオプションで引数に時間を指定できるように。
- プレイリストのアイテムの移動編集。
2013-03-19:Ver 1.3.21.69
- リスト表示をTStringGridからTListBoxへ変更。
- プレーヤーのリスト非表示機能を廃止。
- 「選択フォルダのみ開く」を実装。
- ビデオ映像のキャプチャを別プロセスで起動するように変更。
- ビデオ映像のキャプチャ時に一時停止していたのを廃止。
- 再生の開始時にフェードインさせていたのを廃止。
- レジューム再生に対応。
- 壁紙ビデオモード時ミュートが外れる不具合を修正。
2012-06-20:Ver 1.3.20.62
- ビデオ映像のキャプチャユニットのアップデートによるリリース。
2012-05-21:Ver 1.3.18.59
- リストフォームからファイル操作を行うとプレーヤーフォームがアクティブになってしまう不具合を修正。
- 「ファイル操作」の「ファイル名変更」と「ファイルの移動」を行った後にソートマーカーを消すようにした。
2012-05-12:Ver 1.3.17.51
- リストから選んだファイルの静止画キャプチャが起動しなかった不具合を修正。
- 静止画キャプチャでサンプルグラバの接続がうまくいかなかった場合タイマーを使ってキャプチャするようにした。
2012-04-21:Ver 1.3.16.46
- Windows 7での以下の不具合を修正。
- 壁紙ビデオの選択でエラーになっていた不具合を修正。
- 壁紙ビデオにならない不具合を修正。
ただしプログラム起動時にエアロ効果がオフになる。
- マルチモニター環境でフルスクリーン表示がうまくいかない場合があった不具合を修正。
- mp4ファイルの静止画の取得ができなかった不具合を修正。
ただしffdshow必須。
更にffdshow_rev3771_20110307_clsid.exe以降だとうまくいかずffdshow_rev3760_20110218_clsid.exe以前のものである必要あり。
2012-02-29:Ver 1.3.15.45
- 「大きいアイコン」のチェックをオンからオフにするとプレイリストウィンドウのアイコンのサイズが元に戻らない不具合を修正。
- 不具合を修正したものの「大きいアイコン」オプションを削除。
2012-02-26:Ver 1.3.14.45
- フォルダのドラッグアンドドロップでファイルを取得できていなかった不具合を修正。
2012-02-09:Ver 1.3.13.45
- 壁紙ビデオで再生中にモニターを移動してもオーバーレイ用の壁紙を再作成していなかったためきちんと表示できていなかった不具合を修正。
2012-02-01:Ver 1.3.12.45
- 壁紙ビデオがプライマリモニター以外に表示できなくなっていた不具合を修正。
2012-01-28:Ver 1.3.11.45
- リストのソートで「場所」を選択した場合昇順で期待通りの並びにならないことがある不具合を修正。
- ツールバーにリスト編集ボタンを追加。
- 壁紙ビデオ用のサブウィンドウのアイコンがタスクバーに表示されてしまうことがある不具合を修正。
2012-01-16:Ver 1.3.10.39
- ファイル操作の「ごみ箱へ」が選択ファイルではなく再生中のファイルを削除してしまう不具合を修正。
削除の確認ダイアログが出た後に曲が変わった場合に不具合が起きていた。
2012-01-05:Ver 1.3.9.39
- リストをクリアした後フルスクリーンや壁紙ビデオ状態であったら通常のウィンドウ状態に戻すように変更。
2011-12-18:Ver 1.3.8.39
- ミュートがシーク移動や曲移動の度に解除されてしまう不具合を修正。
- リストにファイルがあってもメディアの再生ができないとファイル操作や曲の移動が出来ない不具合を修正。
2011-12-09:Ver 1.3.7.39
- 拡張子のカスタマイズに対応。
- リストウィンドウの検索エディットボックスで「c」と「z」が入力できなかった不具合を修正。
2011-12-01:Ver 1.3.6.39
- 「送る」フォルダの内容が変わった時にタスクバーのメニューを再作成するようにした。
- 暫定で「大きいアイコン」オプション実装。
大きいアイコンが32×32ピクセルなので大きすぎな気もするけれど。
2011-11-21:Ver 1.3.5.35
- 上部と下部のパネルにヒントを設定。
上部パネルにはメディアのファイル名。
下部パネルにはメディア情報(タイトル/アルバム/アーティスト)
2011-11-16:Ver 1.3.4.30
- 開くの履歴で同じファイルやフォルダが続いた場合まとめて表示するはずがそうなっていなかった不具合を修正。
- 「ファイル操作」のメニューに不要なアイコンが表示されていた不具合を修正。
- 「ファイル操作」の内容を少々手直し。
エラーの対処を若干丁寧にした。
- 「ファイル操作」のダイアログの初期フォルダを設定ファイルに保存するようにした。
- プレイリストウィンドウに「ファイル操作」メニュー実装。
- 「送る」の「プログラムの登録」が出来なくなっていた不具合を修正。
- 「送る」のダイアログの初期フォルダを設定ファイルに保存するようにした。
- [Shift]+「フォルダを開く」選択フォルダ内のファイルのみをリストアップするようにした。
サブフォルダのファイルを含めないでリストアップ。
2011-11-14:Ver 1.3.3.30
- 壁紙ビデオから戻した後にビデオの表示がプレイヤーウィンドウの大きさに追従しなかった不具合を修正。
- サブウィンドウの存在をタイマーでチェックしていたのを廃止。
サブウィンドウ作成時に作成が終わるまで待機するようにしたので必要なくなった。
- ビデオの静止画キャプチャ機能を実装。
時間指定を行いたかったので。
2011-11-12:Ver 1.3.2.23
2011-11-10:Ver 1.3.1.18
- プレイリストウィンドウにツールバーをつけた。
- プレイリストウィンドウに検索ボックスをつけた。
- プレイリストにリストの番号を表示するようにした。
- プレイヤーウィンドウのプレイリストコンボボックスのリストの番号を0からではなく1から始めるようにした。
- 起動時プレイヤーウィンドウのフォーカスが失われてしまう不具合を修正。
サブウィンドウを起動するとそちらにフォーカスを取られてしまっていたのが原因。
サブウィンドウ側でプレイヤーウィンドウにSetForegroundWindowすることで解決。
本来ならサブウィンドウの起動を待ってプレイヤーウィンドウ側で解決するのが筋とは思うのだけれども手軽なので。
2011-11-09:Ver 1.3.0.18
- 本体のプレイリストコンボボックスの表示のオン・オフでビデオ表示画面が追従しなくなっていた不具合を修正。
- プレイリストを別ウィンドウで表示するようにした。
エディタで編集できるようにクリップボードへのコピーと貼り付けを実装していたものの、やはりエディタではやりづらかったので。
minfoや壁紙ビデオと違いTStringGridではなくListBoxを使用しているのでアイテムの選択を不連続で行えるメリットあり。
マイナーバージョンアップ。
2011-11-08:Ver 1.2.3.18
- コンボボックスにフォーカスがある時にマウスホイールを回しても曲が変わらないようにした。
不用意な操作はキャンセルする方向で。
2011-11-06:Ver 1.2.2.18
- フルスクリーン時シークバーとファイルリストに触っただけでパネルが非表示になってしまう不具合を修正。
- なんらかの理由でサブフォームが起動中に閉じられてしまった場合へ対処。
1秒間隔でチェックして無くなっていたら再作成するようにした。
- プログラム終了時にも音声フェードアウトするようにした。
2011-11-03:Ver 1.2.1.18
- いちいちプレーヤーをサブフォームに移す必要もなく、ビデオウィンドウをサブフォームにするだけでも良いことが判明したの作り変え。
移行時の再生中断がなくなった。
ビデオウィンドウが非表示になっているとタスクバーがフラッシュしてしまうようだ。
- トラックバーが不必要に移動してしまう不具合を修正。
マウスの右ボタンを押したままホイール操作でスキップする時に処理中はルーチンに入らないようにして対処。
2011-11-02:Ver 1.2.0.18
- ↓ではうまくいかなかったので壁紙ビデオとビデオメディアで最小化の時にサブフォームを起動して再生させることで問題を回避。
そのため壁紙ビデオへの移行と復帰、最小化と元のサイズに戻す時に再生が中断してしまう。
2011-10-18:Ver 1.1.5.17
- 壁紙ビデオの実装の仕方を改良。
以前のものは曲の変更のたびにデスクトップがちらついてしまっていたため。
- ↑の余波で最小化を実際に最小化するのではなくAlphaBlendをTrueにすることでフォームを透明化するように変更。
壁紙ビデオ時に最小化すると曲の変わり目でタスクバーがフラッシュしてしまうのを防ぐため。
- ↑の余波でタスクバーのメニューをポップアップメニューに置き換え。
- 音声のフェードイン・フェードアウト機能を実装。
2011-10-17:Ver 1.1.4.16
- 壁紙ビデオ機能実装。
合わせてTMyDirectShowPlayer利用に変更。
2011-10-14:Ver 1.1.3.8
- リストの表示と非表示を切り替えるとビデオの表示がずれるようになっていた不具合を修正。
ビデオ表示ウィンドウのサイズ調整を行った後DirectShowでの調整を行っていなかったため。
どのバージョンで紛れ込んだんだろう…
2011-10-13:Ver 1.1.2.8
- タスクバーのプログラムの独自メニューのUnicode表示に対応。
結構力技。
2011-10-12:Ver 1.1.1.8
2011-10-11:Ver 1.1.0.3
- タスクバーにポップアップメニューを表示できるようにした。
タスクバーに表示させるためにオーナードローが使えないのでUnicodeな表示は不可。
マイナーバージョンアップ。
2011-10-09:Ver 1.0.0.3
- プログラムランチャー機能の変わりに「送る」機能を実装。
その方が簡単だったので。
- 開くダイアログのフィルターの「すべてのメディア」と「すべて」を自動で付け足すようにした。
- ファイルを読み込むときに開くダイアログのフィルターに登録してある拡張子のみに限定してリストアップするようにした。
バージョン番号付与。
2011-10-08:
- マウスの右ボタンを押したままホイール操作で30秒スキップ、30秒戻しを実装。
- リスト保存時にファイルの上書きの確認メッセージを出すようにした。
2011-10-04:
- 専用キーに対応。
- ズームメニューのアスペクト比関連を充実させた。
- マウスジェスチャー対応。
2011-10-03:
- ポップアップメニュー実装。
- リストの保存、コピー、貼り付け実装。
- アイコンをdboxのものを流用。
- プロジェクト名をcheaplayerにした。
チープなプレイヤーということで。
2011-10-02:
- ボリューム調整対応。
- リスト表示のON/OFF対応。
- メインのツールバー実装。
- 開いたファイル・フォルダの履歴に対応。
- 設定ファイルの読み書きに対応。
- 状況に応じたメニューのEnabledのセット。
2011-10-01:
- Unicode対応。
- 他のウィンドウを触っても解除されないフルスクリーン対応。
- ランダム再生対応。