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"로 분할된 것으로 간주됩니다. 각 subSample은 암호화되지 않은 일반 바이트 실행과 암호화된 바이트 실행으로 시작합니다. 이러한 실행 중 하나가 비어 있을 수 있습니다. 패턴 암호화가 적용되는 경우 암호화된 각 실행은 "암호화" 및 "건너뛰기" 블록의 반복 패턴에 따라 부분적으로만 암호화됩니다. #numBytesOfClearData 는 모든 데이터가 암호화되었음을 나타내기 위해 null일 수 있으며 #numBytesOfEncryptedData , 모든 데이터가 명확함을 나타내는 null일 수 있습니다. 및 #numBytesOfEncryptedData#numBytesOfClearData 하나 이상은 null이 아니어야 합니다.

이 정보는 ISO/IEC FDIS 23001-7:2016 "ISO 기본 미디어 파일 형식 파일의 일반 암호화"에 설명된 대로 샘플별 메타데이터를 캡슐화합니다.

<h3>ISO-CENC Schemes</h3> ISO/IEC FDIS 23001-7:2016은 패턴화된 암호화가 존재하거나 없는 AES 모드의 가능한 각 조합에 해당하는 미디어를 암호화할 수 있는 네 가지 가능한 체계를 정의합니다.

<table style="width: 0%">thead><trth><> <</th th><>AES-CTR</th<>>AES-CBC</th<>/tr></thead<>tbody<>tr<>th>without Patterns</th><td>cenc</td td<>>cbc1</td<>/tr tr tr<>><th>with Patterns</th><td>cens</td td td<>>cbcs</td<>/tr<>/tbody></table>

의 경우 CryptoInfo필드와 로 설정된 #setPattern값의 #mode 조합으로 구성표가 암시적으로 선택됩니다. 패턴의 경우 패턴을 모든 0(즉, 및 blocksToSkip 모두 blocksToEncrypt 0)으로 설정하면 패턴을 완전히 해제하는 것으로 해석됩니다. 패턴을 사용하지 않는 체계(cenc 또는 cbc1)가 선택됩니다. 패턴을 0이 아닌 값으로 설정하면 패턴 지원 체계, cens 또는 cbcs 중 하나를 선택합니다. 가 호출되지 않는 경우 #setPattern 기본 패턴은 모두 0입니다.

<h4>HLS SAMPLE-AES Audio</h4> HLS SAMPLE-AES 오디오는 패턴화된 암호화를 사용하지 않는다는 점을 제외하고 cbcs 체계와 호환되는 방식으로 암호화됩니다. 그러나 가 패턴을 모든 0으로 설정하는 데 사용되는 경우 #setPattern cbc1 스키마를 선택하는 것으로 해석됩니다. cbc1 스키마는 IO가 처리되는 방식의 차이로 인해 HLS SAMPLE-AES 오디오의 암호를 성공적으로 해독할 수 없습니다. 이러한 이유로 암호화된 블록 및 0 건너뛰기 블록 패턴을 1 HLS SAMPLE-AES 오디오와 함께 사용하는 것이 좋습니다. 그러면 모든 블록의 암호를 해독하는 동안 cbcs 모드를 사용하도록 암호 해독이 트리거됩니다.

에 대한 Java 설명서입니다 android.media.MediaCodec.CryptoInfo.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

MediaCodec.CryptoInfo()

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
Iv

16비트 초기화 벡터

JniIdentityHashCode

암호화된 입력 샘플의 구조를 설명하는 메타데이터입니다.

(다음에서 상속됨 Object)
JniPeerMembers

암호화된 입력 샘플의 구조를 설명하는 메타데이터입니다.

Key

16 바이트 키 ID

Mode

적용된 암호화 유형은 , #CRYPTO_MODE_AES_CTR 및 를 참조하세요#CRYPTO_MODE_UNENCRYPTED.#CRYPTO_MODE_AES_CBC

NumBytesOfClearData

각 subSample의 암호화되지 않은 선행 바이트 수입니다.

NumBytesOfEncryptedData

각 subSample의 후행 암호화된 바이트 수입니다.

NumSubSamples

버퍼의 콘텐츠를 구성하는 하위 샘플의 수입니다.

PeerReference

암호화된 입력 샘플의 구조를 설명하는 메타데이터입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)
ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 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)

instance 하위 샘플 수, 지우기/암호화된 크기, 키, IV 및 모드 필드를 MediaCodec.CryptoInfo 설정합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetPattern(MediaCodec+CryptoInfo+Pattern)

암호화된 입력 샘플의 구조를 설명하는 메타데이터입니다.

ToArray<T>()

암호화된 입력 샘플의 구조를 설명하는 메타데이터입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

암호화된 입력 샘플의 구조를 설명하는 메타데이터입니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>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)

암호화된 입력 샘플의 구조를 설명하는 메타데이터입니다.

적용 대상