MediaCodec.CryptoInfo 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
描述加密輸入範例結構的元數據。
[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
- 繼承
- 屬性
備註
描述加密輸入範例結構的元數據。
緩衝區的數據會被視為分割成「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
設定的值來選取。 針對模式,將模式設定為所有零 (,也就是 blocksToEncrypt
和 blocksToSkip
都是零) 解譯為完全關閉模式。 將會選取不使用模式的配置,也就是 cenc 或 cbc1。 將模式設定為任何非零值,將會選擇其中一個模式支援配置、cens 或 cbcs。 如果 #setPattern
從未呼叫 ,則預設模式為全部零。
<h4>HLS SAMPLE-AES 音訊</h4> HLS SAMPLE-AES 音訊是以與 cbcs 配置相容的方式加密,不同之處在於它不使用模式加密。 不過,如果使用 #setPattern
將模式設定為所有零,這將會解譯為選取 cbc1 配置。 cbc1 配置無法成功解密 HLS SAMPLE-AES 音訊,因為如何處理 IV 的差異。 基於這個理由,建議使用加密區塊模式 1
和 0
略過區塊搭配 HLS SAMPLE-AES 音訊。 這會觸發解密以使用 cbcs 模式,同時仍解密每個區塊。
的 android.media.MediaCodec.CryptoInfo
Java 檔。
此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據 中所述的詞彙使用。
建構函式
MediaCodec.CryptoInfo() |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
Iv |
16 位元組初始化向量 |
JniIdentityHashCode |
描述加密輸入範例結構的元數據。 (繼承來源 Object) |
JniPeerMembers |
描述加密輸入範例結構的元數據。 |
Key |
16 位元組金鑰標識碼 |
Mode |
已套用的加密類型,請參閱 |
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 和模式字段 |
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) |
描述加密輸入範例結構的元數據。 |