强制实施家长管理级别
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
DVD-Video光盘上游戏的任何游戏或部分都可以分配一个通用的家长管理级别, (PML) 从 1 到 8。 当 DVD 导航器读取具有 PML 的内容时,据说它位于 家长块中。 家长块可能包含一个章节的一部分、多个章节或多个标题。 面向国际市场的 DVD 应用程序不应将特定的分级系统硬编码到其家长管理逻辑中。
DVD 导航器本身不强制实施 PML;它只是在光盘上遇到 PML 信息时通知应用程序。默认情况下,它会忽略光盘上的此信息,并播放最高级别的内容。 若要强制实施 PML,应用程序必须实现某种形式的密码控制逻辑,以便将用户与级别相关联,指示 DVD 导航器通过在启动时调用 IDvdControl2::SetOption 方法, (向其发送 PML 事件通知,并将参数DVD_NotifyParentalLevelChange和 TRUE) ,并响应这些事件以根据需要允许或禁止访问。
DVD 游戏可以有一个整体 PML,但光盘作者可以为该游戏的某些部分提供更高或更严格的 PML。 这些称为临时 PML 命令;这些命令始终包含两个分支指令:如果播放器应用程序接受临时 PML 命令,则遵循一个分支指令;如果命令被拒绝,则遵循另一条。 事件序列如下所示。 DVD 导航器在光盘上遇到临时 PML 命令时, (DVD 游戏域) 读取视频内容。它会检查其内部标志,以查看应用程序是否已请求收到此事件的通知。 如果未设置标志,DVD 将继续播放,并遵循光盘上指定的“家长级别更改被拒绝”分支。如果设置了标志,DVD 将向应用程序发送EC_DVD_PARENTAL_LEVEL_CHANGE事件,并在暂停状态下等待,直到收到响应。 当应用程序收到 事件时,它使用自己的逻辑确定是否接受命令。 然后,它使用参数 TRUE 或 FALSE 调用 IDvdControl2::AcceptParentalLevelChange。 如果 为 TRUE,DVD 导航器将按照光盘上指定的“已接受家长级别更改”分支继续播放。否则,它将恢复播放并遵循“家长级别更改被拒绝”分支。
相关主题