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를 사용하여 샘플을 명확한 버퍼로 소멸하거나(세션 라이선스에 보안 디코더가 필요하지 않은 경우) 다운스트림 파이프라인이 샘플을 처리하는 데 필요한 정보를 검색하기 위해 소량의 데이터를 디스크래블할 수 있습니다(세션 라이선스에 보안 디코더가 필요한 경우).
세션에 보안 디코더가 필요한 경우 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.MediaCas
Java 설명서
이 페이지의 일부는 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 |
이 |
Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 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[], 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를 사용하여 보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
MediaCas를 사용하여 보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다 |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 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를 사용하여 보호된 미디어 스트림을 디스크래블 해제하기 위한 키를 가져올 수 있습니다 |