共用方式為


MFSampleExtension_Encryption_ProtectionScheme屬性

指定加密範例的保護設定。

資料類型

UINT32

備註

此屬性的值是 MFSampleEncryptionProtectionScheme 列舉的成員。 如果媒體來源是以 MP4 為基礎,則會根據配置類型方塊中的 [scheme_type ] 欄位的值來設定值, ('schm') MP4 標頭 ('moov' 或 'moof') 。

如果以 MP4 為基礎的檔案或資料流程中的 scheme_type 欄位設定為 'cenc' 或 'cbc1',則 MFSampleExtension_Encryption_ProtectionScheme 屬性應該分別設定為 PROTECTION_SCHEME_AES_CTRPROTECTION_SCHEME_CBC,而且不應該針對 MFSampleExtension_Encryption_CryptByteBlockMFSampleExtension_Encryption_SkipByteBlock設定任何值。

如果以 MP4 為基礎的檔案或資料流程中的scheme_type欄位設定為 'cens' 或 'cbcs',則MFSampleExtension_Encryption_ProtectionScheme屬性應該分別設定為[PROTECTION_SCHEME_AES_CTR] 或[PROTECTION_SCHEME_CBC],並使用 [tenc] 方塊中的值來設定MFSampleExtension_Encryption_CryptByteBlock和MFSampleExtension_Encryption_SkipByteBlock

範例

下列範例示範如何設定 MFSampleExtension_Encryption_ProtectionScheme 和相關聯的 MFSampleExtension_Encryption_CryptByteBlockMFSampleExtension_Encryption_SkipByteBlock 屬性。

HRESULT AddEncryptionAttributes(_In_ IMFSample* pSample, _In_ bool fIsEncrypted)
{
      HRESULT hr = S_OK;

      if (fIsEncrypted)
    {
        //Set Encryption Protection Scheme
        hr = pSample->UINT32(MFSampleExtension_Encryption_ProtectionScheme,
            SAMPLE_ENCRYPTION_PROTECTION_SCHEME_AES_CBC);
            if (FAILED(hr))
                return hr;

        //Set the Initialization Vector (IV)
  //(spSampleEncryptionData is omitted from this example for simplicity.) 
        hr = pSample->SetBlob(MFSampleExtension_Encryption_SampleID, 
            (BYTE*)(spSampleEncryptionData->m_pInitializationVector),
            spSampleEncryptionData->m_bIVSize);
            if (FAILED(hr))
                return hr;

        //Set crypt and skip byte blocks for pattern encryption
        hr = pSample->SetUINT32(MFSampleExtension_Encryption_CryptByteBlock, 1);
            if (FAILED(hr))
                return hr;

        hr = pSample->SetUINT32(MFSampleExtension_Encryption_SkipByteBlock, 9);
            if (FAILED(hr))
                return hr;
    }
      return hr;
}

規格需求

需求
最低支援的用戶端
Windows 10版本 1709 [僅限傳統型應用程式]
最低支援的伺服器
都不支援
標頭
Mfidl.h