Share via


MediaCas 클래스

정의

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

[Android.Runtime.Register("android/media/MediaCas", ApiSince=26, DoNotGenerateAcw=true)]
public sealed class MediaCas : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("android/media/MediaCas", ApiSince=26, DoNotGenerateAcw=true)>]
type MediaCas = class
    inherit Object
    interface IAutoCloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
상속
MediaCas
특성
구현

설명

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다. MediaCas API는 ISO/IEC13818-1과 같은 조건부 액세스를 지원하도록 설계되었습니다. CA 시스템은 16비트 정수 CA_system_id 식별됩니다. 스크램블링 알고리즘은 일반적으로 독점이며 디바이스에 설치된 공급업체별 CA 플러그 인에 의해 구현됩니다.

앱은 사용하려는 CA 시스템에 대한 MediaCas 개체를 생성해야 합니다. 앱은 정적 메서드 #isSystemIdSupported를 사용하여 특정 CA 시스템이 지원되는지 쿼리할 수 있습니다. 정적 메서드 #enumeratePlugins를 사용하여 지원되는 CA 시스템의 전체 목록을 가져올 수도 있습니다.

MediaCas 개체가 생성되면 앱은 메서드 #provision 및/또는 #processEmm를 사용하여 제대로 프로비전해야 합니다. EMM(권한 관리 메시지)은 대역 외 또는 스트림과 대역 내 배포할 수 있습니다.

기본 스트림을 해독하기 위해 앱은 먼저 을 Session 호출 #openSession 하여 세션을 고유하게 식별하는 개체를 생성합니다. 세션은 후속 키 업데이트 및 디스크래블 작업에 대한 컨텍스트를 제공합니다. ECM(권한 제어 메시지)은 메서드 Session#processEcm를 통해 세션으로 전송됩니다.

앱은 다음으로 MediaDescrambler 개체를 생성하고 를 사용하여 MediaDescrambler#setMediaCasSession세션으로 초기화합니다. 이렇게 하면 descrambler가 세션에 연결되고, descrambler를 사용하여 추출 중 또는 로 디코딩하는 동안 세션의 키로 android.media.MediaCodec보호된 콘텐츠를 디스크러블할 수 있습니다.

앱이 자체 추출기를 사용하여 샘플 추출을 처리하는 경우 MediaDescrambler를 사용하여 샘플을 명확한 버퍼로 해독하거나(세션 라이선스에 보안 디코더가 필요하지 않은 경우) 다운스트림 파이프라인이 샘플을 처리하는 데 필요한 정보를 검색하기 위해 소량의 데이터를 디스크래블할 수 있습니다(세션 라이선스에 보안 디코더가 필요한 경우).

세션에 보안 디코더가 필요한 경우 MediaDescrambler를 MediaCodec에 제공하여 큐에 MediaCodec#queueSecureInputBuffer 대기하는 샘플을 보호된 버퍼로 해독해야 합니다. 앱은 MediaCodec를 구성하기 위해 일반 MediaCodec#configure(MediaFormat, android.view.Surface, MediaCrypto, int) 메서드 대신 를 사용해야 MediaCodec#configure(MediaFormat, android.view.Surface, int, MediaDescrambler) 합니다.

<h3>Android의 MediaExtractor</h3 사용>

앱에서 를 사용하는 MediaExtractor경우 를 호출 MediaExtractor#setMediaCas하여 CAS 세션 관리를 MediaExtractor에 위임할 수 있습니다. MediaExtractor는 를 인수하고 , #processEmm 및/또는 Session#processEcm등을 호출#openSession합니다. 필요한 경우 입니다.

를 사용하는 MediaExtractor경우 라이선스에 보안 디코더가 필요한 경우 앱에서 사용할 MediaCodec MediaDescrambler가 여전히 필요합니다. 를 호출 MediaExtractor#getCasInfo하여 트랙의 descrambler와 연결된 세션을 검색하고 MediaCodec에 대한 MediaDescrambler 개체를 초기화하는 데 사용할 수 있습니다.

<h3>수신기</h3>

앱은 메서드 #setEventListener를 사용하여 CA 시스템에서 이벤트를 수신하도록 수신기를 등록할 수 있습니다. 이벤트의 정확한 형식은 체계에 따라 다르며 이 API에서 지정하지 않습니다.

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

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

생성자

MediaCas(Context, Int32, String, Int32)

지정된 시스템 ID의 CA 시스템을 인스턴스화합니다.

MediaCas(Context, Int32, String, Int32, Handler, MediaCas+IEventListener)

지정된 시스템 ID의 CA 시스템을 인스턴스화합니다.

MediaCas(Int32)

지정된 시스템 ID의 CA 시스템을 인스턴스화합니다.

필드

PluginStatusPhysicalModuleChanged
사용되지 않음.

실제 CAS 모듈을 제거하거나 삽입하여 CAS 시스템의 상태 변경되었음을 나타내는 이벤트입니다.

PluginStatusSessionNumberChanged
사용되지 않음.

CAS 시스템의 세션 수가 변경되었음을 나타내는 이벤트입니다.

ScramblingModeAes128
사용되지 않음.

AES(Advanced Encryption System) 128비트 암호화 모드.

ScramblingModeAesCbc
사용되지 않음.

AES(고급 암호화 시스템) CBC(암호화 블록 체인) 모드입니다.

ScramblingModeAesEcb
사용되지 않음.

AES(Advanced Encryption System) ECB(전자 코드 북) 모드.

ScramblingModeAesScte52
사용되지 않음.

AES(고급 암호화 시스템) SCTE(케이블 통신 엔지니어 협회) 52 모드.

ScramblingModeDvbCissaV1
사용되지 않음.

DVB 일반 IPTV CISSA(소프트웨어 지향 스크램블 알고리즘) 버전 1.

ScramblingModeDvbCsa1
사용되지 않음.

DVB(디지털 비디오 브로드캐스팅) CSA(Common Scrambling Algorithm) 1.

ScramblingModeDvbCsa2
사용되지 않음.

DVB CSA 2.

ScramblingModeDvbCsa3Enhance
사용되지 않음.

DVB CSA 3은 완전히 향상된 모드입니다.

ScramblingModeDvbCsa3Minimal
사용되지 않음.

DVB CSA 3은 최소로 향상된 모드입니다.

ScramblingModeDvbCsa3Standard
사용되지 않음.

표준 모드의 DVB CSA 3.

ScramblingModeDvbIdsa
사용되지 않음.

ATIS-0800006 IIF IDSA(기본 스크램블링 알고리즘).

ScramblingModeMulti2
사용되지 않음.

대칭 키 알고리즘입니다.

ScramblingModeReserved
사용되지 않음.

DVB(디지털 비디오 브로드캐스팅) 예약 모드.

ScramblingModeTdesEcb
사용되지 않음.

TDES(Triple Data Encryption Algorithm) ECB(전자 코드 북) 모드.

ScramblingModeTdesScte52
사용되지 않음.

TDES(트리플 데이터 암호화 알고리즘) SCTE(케이블 통신 엔지니어 협회) 52 모드.

SessionUsageLive
사용되지 않음.

Cas 세션은 라이브 스트림을 디스크래블하는 데 사용됩니다.

SessionUsagePlayback
사용되지 않음.

Cas 세션은 다시 채점된 스트림을 디스크래블하는 데 사용됩니다.

SessionUsageRecord
사용되지 않음.

Cas 세션은 라이브 스트림을 디스크래블하고 로컬로 녹화된 콘텐츠를 암호화하는 데 사용됩니다.

SessionUsageTimeshift
사용되지 않음.

Cas 세션은 라이브 스트림을 해독하고, 로컬로 녹화된 콘텐츠를 암호화하고, 로컬 암호화된 콘텐츠를 재생하는 데 사용됩니다.

속성

Class

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

(다음에서 상속됨 Object)
Handle

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

(다음에서 상속됨 Object)
JniIdentityHashCode

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
JniPeerMembers

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

PeerReference

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
ThresholdClass

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

(다음에서 상속됨 Object)
ThresholdType

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

(다음에서 상속됨 Object)

메서드

Clone()

이 개체의 복사본을 만들고 반환합니다.

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

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

Dispose()

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

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

디바이스에서 사용 가능한 모든 CA 플러그 인을 나열합니다.

Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

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

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
IsSystemIdSupported(Int32)

이 디바이스에서 특정 CA 시스템이 지원되는지 쿼리합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

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

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

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

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

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

세션을 열어 조건부 액세스 시스템에 의해 뒤섞인 하나 이상의 스트림을 디스크래블합니다.

OpenSession(Int32, Int32)

세션을 열어 조건부 액세스 시스템에 의해 뒤섞인 하나 이상의 스트림을 디스크래블합니다.

ProcessEmm(Byte[])

수신된 EMM 패킷을 CA 시스템에 보냅니다.

ProcessEmm(Byte[], Int32, Int32)

수신된 EMM 패킷을 CA 시스템에 보냅니다.

Provision(String)

CA 시스템에 대한 프로비저닝 작업을 시작합니다.

RefreshEntitlements(Int32, Byte[])

자격 키를 새로 고치도록 CA 시스템에 알립니다.

SendEvent(Int32, Int32, Byte[])

CA 시스템에 이벤트를 보냅니다.

SetEventListener(MediaCas+IEventListener, Handler)

MediaCas instance 알림을 받도록 이벤트 수신기를 설정합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetPrivateData(Byte[])

CA 시스템에 대한 프라이빗 데이터를 보냅니다.

ToArray<T>()

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

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

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

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

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

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

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

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

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

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

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

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

GetJniTypeName(IJavaPeerable)

MediaCas를 사용하여 와 함께 android.media.MediaDescrambler보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다.

적용 대상