Share via


強制執行家長管理等級

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

DVD-Video光碟上標題的任何標題或部分都可以指派一般家長管理層級, (PML) 從 1 到 8。 當 DVD 導覽器正在讀取具有 PML 的內容時,即稱為在 家長區塊中。 家長區塊可能包含章節、多個章節或多個標題的一部分。 供國際市場使用之 DVD 應用程式不應將特定分級系統硬式編碼為其家長管理邏輯。

DVD 導覽器本身不會強制執行 PML;它只會在遇到磁片上的 PML 資訊時通知您的應用程式。根據預設,它會忽略光碟上的這項資訊,並播放最高層級的內容。 若要強制執行 PML,您的應用程式必須實作某種形式的密碼控制邏輯,以將使用者與層級產生關聯、指示 DVD 導覽器透過在啟動時呼叫 IControl2::SetOption 方法來傳送 PML 事件通知 (,並搭配參數 DVD_NotifyParentalLevelChange 和 TRUE) ,並回應這些事件,以適當允許或不允許存取。

DVD 標題可以有一個整體 PML,但光碟作者可以提供該標題的特定區段,較高或更嚴格的 PML。 這些稱為暫存 PML 命令;這些命令一律包含兩個分支指示:一個是玩家應用程式接受暫存 PML 命令,另一個則是在拒絕命令時遵循。 事件順序如下所示。 當 DVD 導覽器在光碟上遇到暫時 PML 命令時,會 (DVD 標題網域) 讀取視訊內容。它會檢查其內部旗標,以查看應用程式是否已要求收到此事件的通知。 如果未設定旗標,DVD 會繼續播放,並遵循光碟上指定的「家長層級變更已拒絕」分支。如果設定旗標,DVD 會將EC_DVD_PARENTAL_LEVEL_CHANGE事件傳送至應用程式,並等候處於暫停狀態,直到取得回應為止。 當應用程式收到事件時,它會使用自己的邏輯來判斷是否要接受命令。 然後它會以TRUEFALSE的引數呼叫IControl2::AcceptParentalLevelChange。 如果 為 TRUE,DVD 導覽器會繼續播放,並遵循光碟上指定的「家長層級變更」分支。否則,它會繼續播放,並遵循「家長等級變更已拒絕」分支。

DVD 應用程式