dsPackPlayer V2.8

【ソフトの概要】
コマ送り、プレビュー、再生速度、フォームスタイルを変更できるメディアプレイヤーです。

【作者への連絡先】
下記アドレスの「XYZ」を「アットマーク」に変えたアドレス
arihiko2023XYZkamon.ne.jp

【取り扱い種別】
フリーソフト

【動作環境】
Windows11で動作確認しています。

【インストール・アンインストール方法】
任意のフォルダにdsPackPlayer.exeを置いて「管理者として」実行するだけです。
いらなくなったら、そのフォルダごと削除すればOKです。

Copyright Arihiko
///////////////////////////////////////////////////////////////////////////////
【特徴】
DirectShowを使用したメディアファイル再生プレイヤーです。
再生速度を0.1～5.0倍に変えることができます。
再生画面のマウスホイールでコマ送りができます。
アスペクト比を変えることができます。
ファイルは次々に登録できて、それらを切り替えて再生できます。
関連付け及びドラッグ＆ドロップでファイルを開く事もできます。
また、インターネットラジのプレイリストファイル(m3u8)を開いてラジオ放送を聴く事もできます。
フルスクリーン表示や画像キャプチャーもできます。
プログレスバーのマウスホバーでプレビュー表示できます。
プログラム終了時に、dspackPlayer.exeと同じフォルダに、ファイルリストの内容が
「dspackPlayerCOMBO.txt」のファイルとして保存されます。また、フォームの位置や大きさ、
速度、音量、スタイルをが「dsPackPlayer.ini」み保存されて、次回起動時に読み込まれます。

【起動方法】
注！dsPackPlayer.exeは「管理者として実行」してください。普通に起動しただけでは、
画面キャプチャやプレビュー表示が(VIDEO以外で)できない場合があります。

【ファイルの開き方】
起動したdsPackPlayerの[開く]ボタンから開く。
起動したdsPackPlayer上にエクスプローラ等からメディアファイル(複数可)をドラッグ＆ドロップして開く。
メディアファイルをdspackPlayer.exeに関連付けることによって開く。
dspackPlayer.exeファイル，あるいはdspackPlayer.exeファイルのショートカットに，エクスプローラ等から
  メディアファイル(複数可)をドラッグ＆ドロップして開く。

【ファイルコンボボックス】
追加されたファイルはこのファイルコンボボックスの末尾に登録されます。
このコンボボックスで再生ファイルを切り替えることができます。
現在の再生が終われば、次のファイルが再生されます。
現在再生中のファイルを、一つ上の順番に移動・一つ下の順番に移動・リストから外すことができます。
また、リストをオールクリアすることもできます。

【画面操作】
[中ボタンクリック]:フルスクリーンON/OFF
[右クリック]:ポップアップメニュー(メインメニューとほぼ同じ機能)表示
[クリック]or[スペースキー]:Play/pause切り替え
[←]キーor[マウスホイール↑]:ー巻き戻し(10フレーム)
[→]キーor[マウスホイール↓]:早送り(10フレーム)
　この時[Shift]:(5フレーム)、[Ctrl]:(2フレーム)、[Alt]:(1フレーム)になります。
　(※30fpsの動画を前提にした時のフレーム数です、それ以外のfpsではコマ送り間隔が違ってきます。)
[Esc]キー:フルスクリーン解除
[back]キー:フォーム最小化＆消音

【メインメニュー】
[開く]:メディアファイルオープン
[再生]:再生
[ポーズ]:ポーズ
[停止]:停止(再生位置が0に戻る)
[上へ]:現在のファイルを一つ上の順番に移動
[下へ]:現在のファイルを一つ下の順番に移動
[外す]:現在のファイルをリストから外す
[クリア]:再生リストを全クリアする
[形式]:画像キャプチャー形式選択(VMR9,VMR7,VIDEO,MEDIA)デフォルトは「VMR9」
[キャプチャ]:現在の再生時間の映像を画面キャプチャーしてキャプチャーフォームを表示します。
[全画面]:フルスクリーン(解除はEscキー)
[アスペクト]:アスペクト比のOn/Off (Onがボタンダウン状態)
[アバウト]:アバウト＆ヘルプ

【キャプチャーフォーム】
 [保存]:名前つけ保存ダイアログにより、キャプチャーフォームの大きさで
 　画像をBMP画像として名前つけファイル保存。
 [コピー]:画像をキャプチャーフォームの大きさでクリップボードへコピー。
 [原寸大保存]:名前つけ保存ダイアログにより、原寸大の大きさで
 　画像をBMP画像として名前つけファイル保存。
 [原寸大コピー]:画像を原寸大の大きさでクリップボードへコピー。

【再生速度】
フォーム左下のダイヤルノブで、スロー0.1～標準速度1.0～倍速5.0まで再生速度を変更できます。
(※動画の種類やお使いのパソコンのハードウエアの状況により下限・上限値は制限されます。)
操作は、マウスのクリック、ドラッグ、マウスホイールで変更。
マウス中ボタンクリックで標準速度１倍速にできます。

【音量調整】
フォーム左下のダイヤルノブで、最小無音0～最大音量100まで音量調整できます。
操作は、マウスのクリック、ドラッグ、マウスホイールで変更。
マウス中ボタンクリックで消音にできます。
音の大きさは音量表示バーでリアルタイムに視認できます。

【スタイルセッティング】
フォーム上段のスタイルメニューで、フォームのスタイルを35種類の中から選ぶことができます。
スタイル変更すると、フォームの状態がリセットされますので、再生ファイルを選び直してください。

【シークバー】
スライダーをマウスでドラッグしで再生位置を変更できます。
シークバーがアクティブの時に、[←]キー:巻き戻し、[→]キー:早送り、
[PgUp]キー:巻き戻し、[PgDn]キー:早送り。[マウスホイール]:↑=巻き戻し、↓=早送り。

【プログレスバー】
リアルタイムにバーを表示します。
クリックすると、その時間に再生位置をジャンプできます。
マウスホバーでその時間のプレビューを表示します。

【リアルタイム表示】
フォーム左下に、映像画面の大きさ(幅x高さ)と、
現在再生時間(時:分:秒)／総映像時間(時:分:秒)を表示 。

【再生可能ファイル形式について】
もしもmp4などのファイルが再生できない場合は，フリーのコーデック「K-Lite Codec Pack」を
インストールすると再生できると思います。
https://codecguide.com/download_kl.htm　の「Download Basic」の「Sever1」または
「Sever2」から『K-Lite_Codec_Pack_****_Basic.exe』をダウンロードしてインストールしてみてください。

【仕様】
１．すでにdspackPlayer.exeが起動している時に、関連付けでdspackPlayer.exeを起動すると、
すでにあるdspackPlayer.exeを閉じて、新たにdspackPlayer.exeを起動します。
２．プレビューはマウスホバーでマウスを動かすと、そのつど映像から静止画を作成するので、
プレビュー表示されるまで、ワンテンポかかります。

【他のアプリとの競合】
無いとは思いますが、もしも、
ケース１
'MyUniqueAppMutex_dsPackPlayer'というミューテックス名で'TForm0123456789'以外のクラス名
を持つウインドウアプリが先に起動していれば、
dsPackPlayer.exeは単独起動も関連付け起動もできません。
ケース２
'MyUniqueAppMutex_dsPackPlayer'というミューテックス名で'TForm0123456789'というクラス名
を持つウインドウアプリが先に起動していれば、depackPlayer.exeは単独起動できません。
一方、関連付けでdepackPlayer.exeを起動したら、先に起動していたアプリの方を閉じて
depackPlayer.exeが起動してしまいます。

【参考資料】
☆ カルト・ドランさんのページ「http://drang.s4.xrea.com/index.html」の
プログラム>Delphi6ローテクTips>マルチメディア>DirectShowで再生
「http://drang.s4.xrea.com/program/tips/dshow/dshow_play_1.html」

☆ DSPackのインストール ～Delphiソースコード集
「https://mam-mam.net/delphi/dspack_install.html」

☆ How do I get a list of installed webcams? [closed]
「https://stackoverflow.com/questions/15981447/how-do-i-get-a-list-of-installed-webcams」
より、const　IID_IPropertyBag : TGUID = '{55272A00-42CB-11CE-8135-00AA004BB851}';

☆ DirectShowの音量調整
private
  { Private 宣言 }
  l_BasicAudio : IBasicAudio;//////////////////////////////////////////////////

procedure TForm1.ComboBox1Select(Sender: TObject);
//ファイル選択→再生
var
  l_BasicAudio : IBasicAudio;/////////////////////////////////////////////////////////

  ///////////////////////////////////////////////////////////////////////////////////
  F_GraphBuilder.QueryInterface(IBasicAudio, l_BasicAudio);
  l_basicAudio.put_Volume(-5000); // 最小無音-10000～最大音量0 注意！対数スケール！
  //////////////////////////////////////////////////////////////////////////////////////

☆外部アプリから Delphi のコンポーネントへドラッグ＆ドロップする方法【TDropFileクラス公開】
@vramさん：https://qiita.com/vram
https://qiita.com/vram/items/08481ac8c45309ca036b

【変更履歴】
V1.0  2025/08/09  Delphi12で作りました，Windows11で動作確認しています。
V1.1  2025/08/10  画面キャプチャー機能追加
V1.2  2025/08/11  関連付け及びドラッグ＆ドロップでファイルを開く機能追加。
V1.3  2025/08/11  画面のダブルクリックでのフルスクリーンの記述を忘れていたので追加。
    画面の右クリックでポップアップメニュー(メインメニューと同じ機能)追加。
V1.4  2025/08/11  フォームのサイズを変更しても映像画面の大きさが追従していなかったバグを訂正。
V1.5  2025/08/12  画面のマウスホイールで再生位置変更機能などを追加。
    フォームのクリックでPlay/pauseの切り替え、またマウスホイールで再生位置を前後させる機能追加。
    クリックして再生地を変更できるプログレスバーを追加。
    再生速度の1.7が1,7になっていたバグを訂正。
V1.6  2025/08/15  全画面表示をマウスダブルクリックからマウス中ボタンクリックに変更。
    画面の右クリックポップアップメニューに、再生速度と音量調整を追加。 再生速度の区分を多少変更。
V1.7  2025/08/18  画面の右クリックポップアップメニューの再生速度と音量調整が聞かなかったバグを訂正。
V1.8  2025/08/19  音の大きさがリアルタイムに視認できる音量表示バーチ追加。
また、インターネットラジのプレイリストファイル(m3u8)を開いてラジオ放送を聴取できることの説明文追加。
V1.9  2025/08/28  イン画面のヒント訂正⇒ダブルクリック→中ボタンクリック。
    フルスクリーンのメニュー追加＆解除をEscキーに割当て。
V2.0  2025/08/29  音量に0が表示されてなかったバグを訂正。メニューを日本語表記に変更。
V2.1  2025/10/01  画面クリックで動画ポーズしたときに、プログレスバーをクリックすると、再生位置は
　　実際の位置を再生できているのに、プログレスバーが追従していなかったバグを訂正。
V2.2  2025/11/15  プログレスバーを廃止。
V2.3  2026/08/08  マウススクロールでの再生位置変更をを微細移動にした。ファイルリストを保存＆再開できるようにした。
  二重起動の時に、すでに起動しているdsPackPlayer.exeを閉じて、新たにdsPackPlayer.exeを起動するようにした。
  フォームのスタイルを変更できるようにした。音量と速度を記憶できるようにした。
V2.5  2026/08/10  'MyUniqueAppMutex_12345'を'MyUniqueAppMutex_dsPackPlayer'に変更した。
  関連付け二重起動の時に、フォームの位置がズレていたバグを訂正。
  マウスホイールでのコマ送りのステップ数を1 or 2 or 5 or 10フレーム単位で変更できるようにした。
  音量調整が最大～最小が逆になっていたので直した。
V2.6  2026/08/12  現在の時間をリアルタイムに表示するプログレスバー追加。
  プログレスバーのマウスホバーでプレビュー表示機能追加。
V2.7  2026/08/13  dsPackPlayer.exeは「管理者として実行」してください。普通に起動しただけでは、
  画面キャプチャやプレビュー表示が(VIDEO以外で)できない場合があります。という
  ダイアログを表示するようにした。
  速度調整と音量調整をダイヤルノブに変更した。
V2.8  2026/08/16  画面キャプチャでの保存やコピーをキャプチャ画面サイズでも保存・コピーできるようにした。
    [←][→]キーでコマ送りできるようにした。
