次の方法で共有


フォルダーの監視について

[このページWindows メディア プレーヤー SDK に関連付けられている機能は、レガシ機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は SDK ではなく MediaPlayerWindows メディア プレーヤー使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

Windows メディア プレーヤーデジタル メディア ファイルを含むフォルダーを監視し、ファイルの追加または削除時にライブラリを更新できます。 このフォルダー監視機能は、 IWMPFolderMonitorServices インターフェイスによって提供されます。

フォルダー監視サービスを使用するには、Player オブジェクトをリモート状態で作成する必要があります。 リモート処理の詳細については、「Windows メディア プレーヤー コントロールのリモート処理」を参照してください。 プレーヤーのリモート インスタンスを作成したら、IWMPPlayer インターフェイスで QueryInterface を呼び出して、IWMPFolderMonitorServices インターフェイスへのポインターを取得します。

Windows メディア プレーヤーは、監視対象のフォルダーの一覧を保持します。 監視対象フォルダーの一覧を取得するには、 IWMPFolderMonitorServices::get_count メソッドと IWMPFolderMonitorServices::item メソッドを使用します。 フォルダーをリストに追加したり、リストから削除したりするには、それぞれ IWMPFolderMonitorServices::add メソッドと remove メソッドを使用します。

スキャンの開始

フォルダーの監視は、通常、明示的に呼び出す必要のないバックグラウンド プロセスです。 フォルダーをアクティブにスキャンする場合は、 IWMPFolderMonitorServices::startScan を呼び出します。 実行中のスキャンは、 IWMPFolderMonitorServices::stopScan メソッドを使用して停止できます。

フォルダーの監視状態の取得

IWMPFolderMonitorServices には、フォルダー監視プロセスの状態を取得するための機能が用意されています。

フォルダーのスキャンは 2 回のパスで行われます。 最初のパスでは、Player は、監視対象のフォルダー リスト内の という名前のフォルダーを 1 つずつスキャンし、ライブラリに追加するファイルの一覧を作成します。 2 番目のパスでは、ファイルの一覧を通過し、ファイルをライブラリに追加し、対応する物理ファイルがファイル システムから削除されたメディア項目もライブラリから削除します。

FolderScanStateChange イベントは、プレーヤーが新しい状態に切り替わるたびにプログラムに通知するために使用されます。 get_scanStateを呼び出して、現在の状態を取得することもできます。 最初のパスが開始されると、現在の状態の値は wmpfssScanning になります。 2 番目のパスでは、状態が wmpfssUpdating に切り替わります。 プロセスが完了すると、状態は wmpfssStopped に変わります。

プレーヤーが最初のパスで監視対象フォルダーをスキャンしている間に、get_scannedFilesCountを呼び出して、スキャンされたファイルの数をチェックします。 get_currentFolderメソッドは、現在スキャンされているフォルダーを示します。

2 番目のパスが開始されたら、get_addedFilesCount を呼び出して、ライブラリに追加されたファイルの数をチェックします。 get_updateProgressメソッドは、2 番目のパスの進行状況を 0 から 100 の割合で示します。

Player オブジェクト モデルについて

IWMPFolderMonitorServices インターフェイス