关于文件夹监视

Windows 媒体播放器可以监视包含数字媒体文件的文件夹,并在添加或删除文件时更新库。 此文件夹监视功能由 IWMPFolderMonitorServices 接口提供。

若要使用文件夹监视服务,必须创建处于远程状态的 Player 对象。 有关远程处理的详细信息,请参阅远程处理Windows 媒体播放器控件。 创建玩家的远程实例后,通过在 IWMPPlayer 接口上调用 QueryInterface 来获取指向 IWMPFolderMonitorServices 接口的指针。

Windows 媒体播放器保留正在监视的文件夹列表。 若要获取受监视文件夹的列表,请使用 IWMPFolderMonitorServices::get_countIWMPFolderMonitorServices::item 方法。 若要将文件夹添加到列表或从列表中删除文件夹,请分别使用 IWMPFolderMonitorServices::addremove 方法。

启动扫描

监视文件夹通常是不需要显式调用的后台进程。 如果要主动扫描文件夹,请调用 IWMPFolderMonitorServices::startScan。 可以使用 IWMPFolderMonitorServices::stopScan 方法停止扫描。

检索文件夹监视状态

IWMPFolderMonitorServices 提供用于检索文件夹监视进程状态的功能。

文件夹扫描在两次传递中完成。 在第一次传递中,玩家逐个扫描受监视文件夹列表中命名的文件夹,并生成要添加到库的文件列表。 在第二次传递中,它将浏览文件列表,并将文件添加到库,并删除从文件系统中删除相应物理文件的库中的任何媒体项。

每当 Player 切换到新状态时, FolderScanStateChange 事件将用于通知程序。 还可以通过调用 get_scanState来检索当前状态。 第一次传递启动时,当前状态值为 wmpfssScanning。 在第二次传递期间,状态切换到 wmpfssUpdating。 该过程完成后,状态将更改为 wmpfssStopped。

当玩家在第一次传递上扫描受监视的文件夹时,请调用 get_scannedFilesCount 检查扫描的文件数。 get_currentFolder方法将告诉你当前正在扫描哪个文件夹。

第二次传递开始后,调用 get_addedFilesCount 检查已添加到库的文件数。 get_updateProgress方法将告诉你第二个传递的进度,从 0 到 100 的百分比。

关于玩家对象模型

IWMPFolderMonitorServices 接口