다음을 통해 공유


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

세션에 보안 디코더가 필요한 경우 MediaCodec에 MediaDescrambler를 제공하여 보호된 버퍼로 큐에 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는 인수 및 호출 #openSession#processEmm /또는 Session#processEcm등을 수행합니다. 다시 장착합니다.

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

<h3>수신기</h3>

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

에 대한 android.media.MediaCasJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

생성자

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

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

MediaCas(Context, Int32, String, Int32)

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

MediaCas(Int32)

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

필드

PluginStatusPhysicalModuleChanged
사용되지 않음.

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

PluginStatusSessionNumberChanged
사용되지 않음.

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

ScramblingModeAes128
사용되지 않음.

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

ScramblingModeAesCbc
사용되지 않음.

AES(Advanced Encryption System) CBC(암호화 블록 체인) 모드입니다.

ScramblingModeAesEcb
사용되지 않음.

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

ScramblingModeAesScte52
사용되지 않음.

AES(Advanced Encryption System) SOCIETy of Cable Telecommunications Engineers(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(Electronic Code Book) 모드입니다.

ScramblingModeTdesScte52
사용되지 않음.

TDES(Triple Data Encryption Algorithm) SOCIETy of Cable Telecommunications Engineers(SCTE) 52 모드.

SessionUsageLive
사용되지 않음.

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

SessionUsagePlayback
사용되지 않음.

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

SessionUsageRecord
사용되지 않음.

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

SessionUsageTimeshift
사용되지 않음.

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

속성

Class

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

(다음에서 상속됨 Object)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

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

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

ProcessEmm(Byte[])

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

Provision(String)

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

RefreshEntitlements(Int32, Byte[])

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

SendEvent(Int32, Int32, Byte[])

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

SetEventListener(MediaCas+IEventListener, Handler)

MediaCas 인스턴스에서 알림을 받도록 이벤트 수신기를 설정합니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

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

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

ToArray<T>()

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

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

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

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

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

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

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

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

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

적용 대상