MediaCas 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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를 사용하여 와 함께 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 |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
JniIdentityHashCode |
MediaCas를 사용하여 와 함께 |
JniPeerMembers |
MediaCas를 사용하여 와 함께 |
PeerReference |
MediaCas를 사용하여 와 함께 |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
메서드
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
Close() |
MediaCas를 사용하여 와 함께 |
Dispose() |
MediaCas를 사용하여 와 함께 |
Dispose(Boolean) |
MediaCas를 사용하여 와 함께 |
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를 사용하여 와 함께 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
MediaCas를 사용하여 와 함께 |
Wait() |
현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
MediaCas를 사용하여 와 함께 |
IJavaPeerable.DisposeUnlessReferenced() |
MediaCas를 사용하여 와 함께 |
IJavaPeerable.Finalized() |
MediaCas를 사용하여 와 함께 |
IJavaPeerable.JniManagedPeerState |
MediaCas를 사용하여 와 함께 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
MediaCas를 사용하여 와 함께 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
MediaCas를 사용하여 와 함께 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
MediaCas를 사용하여 와 함께 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
MediaCas를 사용하여 와 함께 |
GetJniTypeName(IJavaPeerable) |
MediaCas를 사용하여 와 함께 |