Share via


MediaCodec.CryptoInfo 類別

定義

描述加密輸入範例結構的元數據。

[Android.Runtime.Register("android/media/MediaCodec$CryptoInfo", DoNotGenerateAcw=true)]
public sealed class MediaCodec.CryptoInfo : Java.Lang.Object
[<Android.Runtime.Register("android/media/MediaCodec$CryptoInfo", DoNotGenerateAcw=true)>]
type MediaCodec.CryptoInfo = class
    inherit Object
繼承
MediaCodec.CryptoInfo
屬性

備註

描述加密輸入範例結構的元數據。

緩衝區的數據會被視為分割成「subSamples」。 每個子取樣都會以一個純文本、未加密的位元組執行,後面接著一個加密的位元組執行開始。 其中一個執行可能是空的。 如果套用模式加密,則每個加密的執行只會根據「加密」和「略過」區塊的重複模式進行部分加密。 #numBytesOfClearData 可以是 Null,表示所有數據都已加密,而且 #numBytesOfEncryptedData 可以是 Null,表示所有數據都已清除。 至少有一個 #numBytesOfClearData#numBytesOfEncryptedData 必須是非 Null。

此資訊會封裝每個範例元數據,如 ISO/IEC FDIS 23001-7:2016「ISO 基底媒體檔格式檔案中的一般加密」中所述。

<h3>ISO-CENC Schemes</h3> ISO/IEC FDIS 23001-7:2016 會定義四個可能的配置,其中媒體可能會加密,對應至 AES 模式的每個可能組合,以及是否存在模式加密。

<表格樣式=“width: 0%”><thead><tr><th> </th>th AES-CTR</th>><AES-CBC</th></tr<>/thead><tbody<>tr><>th Without Patterns</th><td>cenc</td td<>>cbc1</td<>/tr tr><><th>With Patterns><</th td>cens</td<>td>cbcs</td></tr></tbody></table><>

針對 CryptoInfo,配置會隱含地由 字段的組合 #mode 和以 #setPattern設定的值來選取。 針對模式,將模式設定為所有零 (,也就是 blocksToEncryptblocksToSkip 都是零) 解譯為完全關閉模式。 將會選取不使用模式的配置,也就是 cenc 或 cbc1。 將模式設定為任何非零值,將會選擇其中一個模式支援配置、cens 或 cbcs。 如果 #setPattern 從未呼叫 ,則預設模式為全部零。

<h4>HLS SAMPLE-AES 音訊</h4> HLS SAMPLE-AES 音訊是以與 cbcs 配置相容的方式加密,不同之處在於它不使用模式加密。 不過,如果使用 #setPattern 將模式設定為所有零,這將會解譯為選取 cbc1 配置。 cbc1 配置無法成功解密 HLS SAMPLE-AES 音訊,因為如何處理 IV 的差異。 基於這個理由,建議使用加密區塊模式 10 略過區塊搭配 HLS SAMPLE-AES 音訊。 這會觸發解密以使用 cbcs 模式,同時仍解密每個區塊。

android.media.MediaCodec.CryptoInfoJava 檔。

此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據 中所述的詞彙使用。

建構函式

MediaCodec.CryptoInfo()

屬性

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
Iv

16 位元組初始化向量

JniIdentityHashCode

描述加密輸入範例結構的元數據。

(繼承來源 Object)
JniPeerMembers

描述加密輸入範例結構的元數據。

Key

16 位元組金鑰標識碼

Mode

已套用的加密類型,請參閱 #CRYPTO_MODE_UNENCRYPTED#CRYPTO_MODE_AES_CTR#CRYPTO_MODE_AES_CBC

NumBytesOfClearData

每個子範例中前置未加密位元組的數目。

NumBytesOfEncryptedData

每個子範例中的尾端加密位元元數目。

NumSubSamples

構成緩衝區內容的子取樣數目。

PeerReference

描述加密輸入範例結構的元數據。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。

(繼承來源 Object)
ThresholdType

此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。

(繼承來源 Object)

方法

Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
Dispose()

描述加密輸入範例結構的元數據。

(繼承來源 Object)
Dispose(Boolean)

描述加密輸入範例結構的元數據。

(繼承來源 Object)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
GetPattern()

描述加密輸入範例結構的元數據。

JavaFinalize()

當垃圾收集判斷對象沒有其他參考時,由物件上的垃圾收集行程呼叫。

(繼承來源 Object)
Notify()

喚醒正在等候此物件的監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
Set(Int32, Int32[], Int32[], Byte[], Byte[], MediaCodecCryptoMode)

設定實例的子取樣計數、清除/加密大小、金鑰、IV 和模式字段 MediaCodec.CryptoInfo

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPattern(MediaCodec+CryptoInfo+Pattern)

描述加密輸入範例結構的元數據。

ToArray<T>()

描述加密輸入範例結構的元數據。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

描述加密輸入範例結構的元數據。

(繼承來源 Object)
Wait()

讓目前的線程等到喚醒為止,通常是藉由 <em>notified</em> 或 <em>interrupted</em> 來喚醒。

(繼承來源 Object)
Wait(Int64)

讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。

(繼承來源 Object)

明確介面實作

IJavaPeerable.Disposed()

描述加密輸入範例結構的元數據。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

描述加密輸入範例結構的元數據。

(繼承來源 Object)
IJavaPeerable.Finalized()

描述加密輸入範例結構的元數據。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

描述加密輸入範例結構的元數據。

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

描述加密輸入範例結構的元數據。

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

描述加密輸入範例結構的元數據。

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

描述加密輸入範例結構的元數據。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

描述加密輸入範例結構的元數據。

GetJniTypeName(IJavaPeerable)

描述加密輸入範例結構的元數據。

適用於