Android 디바이스용 네이티브 플레이어 앱을 개발하는 가장 쉬운 방법은 오픈 소스 비디오 플레이어 SDK인 Google ExoPlayer SDK 사용하는 것입니다. ExoPlayer는 MPEG-DASH 및 Microsoft 부드러운 스트리밍 배달 프로토콜을 포함하여 현재 Android의 네이티브 MediaPlayer API에서 지원되지 않는 기능을 지원합니다.
ExoPlayer 버전 2.6 이상에는 오프라인 Widevine DRM 재생을 지원하는 많은 클래스가 포함되어 있습니다. 특히 OfflineLicenseHelper 클래스는 오프라인 라이선스를 다운로드, 갱신 및 해제하기 위해 DefaultDrmSessionManager를 쉽게 사용할 수 있는 유틸리티 함수를 제공합니다. SDK 폴더에 제공된 클래스는 오프라인 비디오 콘텐츠 다운로드를 지원하기 library/core/src/main/java/com/google/android/exoplayer2/offline/.
다음 클래스 목록은 Android용 ExoPlayer SDK에서 오프라인 모드를 용이하게 합니다.
일부 이전 Android 디바이스의 경우 다음과 같은 policy_overrides 속성에 대한 값을 설정해야 합니다(Widevine 라이선스 템플릿정의됨: rental_duration_seconds, playback_duration_seconds및 license_duration_seconds. 또는 시간 제한이 없음을 의미하는 0설정할 수 있습니다.
Android 5.0은 ARMv8(Advanced RISC Machine) 및 64비트 플랫폼을 완전히 지원하도록 설계된 첫 번째 Android 버전이므로 Android 5.0 롤리팝 이상에서는 이 문제가 발생하지 않으며, Android 4.4 KitKat은 원래 다른 이전 Android 버전과 마찬가지로 ARMv7 및 32비트 플랫폼을 지원하도록 설계되었습니다.
Android용 Chrome v. 62출시부터 EME의 영구 라이선스가 지원됩니다.
Widevine L1 이제 Android용 Chrome에서도 지원됩니다. 이렇게 하면 최종 사용자에게 이(또는 그 이상) 버전의 Chrome이 있는 경우 Chrome에서 오프라인 재생 애플리케이션을 만들 수 있습니다.
Android 휴대폰에서 모바일 Chrome 브라우저를 v62 이상으로 업그레이드하고 위의 호스트된 샘플 앱을 테스트하는 경우 온라인 스트리밍 및 오프라인 재생이 모두 작동하는 것을 볼 수 있습니다.
위의 오픈 소스 PWA 앱은 Node.js작성되었습니다. Ubuntu 서버에서 고유한 버전을 호스트하려는 경우 재생을 방지할 수 있는 다음과 같은 일반적인 문제가 발생한다는 점에 유의하세요.
CORS 문제: 샘플 앱의 샘플 비디오는 https://storage.googleapis.com/biograf-video-files/videos/호스트됩니다. Google은 Google Cloud Storage 버킷에서 호스트되는 모든 테스트 샘플에 대해 CORS를 설정했습니다. CORS 헤더와 함께 제공되어 CORS 항목을 명시적으로 지정합니다. https://biograf-155113.appspot.com(google이 샘플을 호스트하는 도메인)은 다른 사이트의 액세스를 차단합니다. 시도하면 다음과 같은 HTTP 오류가 표시됩니다. Failed to load https://storage.googleapis.com/biograf-video-files/videos/poly-sizzle-2015/mp4/dash.mpd: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https:\//13.85.80.81:8080' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
인증서 문제: Chrome v 58부터 Widevine용 EME에는 HTTPS가 필요합니다. 따라서 X509 인증서를 사용하여 HTTPS를 통해 샘플 앱을 호스트해야 합니다. 일반적인 테스트 인증서는 다음 요구 사항으로 인해 작동하지 않습니다. 다음 최소 요구 사항을 충족하는 인증서를 가져와야 합니다.
Chrome 및 Firefox는 인증서에 SAN-Subject 대체 이름 설정이 있어야 합니다.
인증서에 신뢰할 수 있는 CA가 있어야 하며 자체 서명된 개발 인증서가 작동하지 않습니다.
인증서에는 웹 서버 또는 게이트웨이의 DNS 이름과 일치하는 CN이 있어야 합니다.
H264/AAC를 사용하는 부드러운 스트리밍 파일 형식에는 PlayReady(AES-128 CTR)를 사용하는 바인딩이 있습니다. 오디오가 비디오에서 muxed라고 가정하는 부드러운 스트리밍 .ismv 파일은 그 자체가 fMP4이며 재생에 사용할 수 있습니다. 부드러운 스트리밍 콘텐츠가 PlayReady 암호화를 통과하면 각 .ismv 파일은 PlayReady로 보호되는 MP4 조각이 됩니다. 기본 비트 전송률로 .ismv 파일을 선택하고 다운로드할 .mp4 이름을 바꿀 수 있습니다.
점진적 다운로드를 위해 PlayReady로 보호된 MP4를 호스팅하는 두 가지 옵션이 있습니다.
MP4를 동일한 컨테이너/미디어 서비스 자산에 배치하고 점진적 다운로드를 위해 Azure Media Services 스트리밍 엔드포인트를 사용할 수 있습니다.
Azure Storage에서 직접 점진적 다운로드를 위해 SAS URL을 사용할 수 있습니다.
다음 두 가지 유형의 PlayReady 라이선스 배달을 사용할 수 있습니다.
Azure Media Services의 PlayReady 라이선스 배달 서비스
어디에서나 호스트되는 PlayReady 라이선스 서버.
AMS 배달 서비스를 사용하여 PlayReady 라이선스를 얻으려면 PlayReady 라이선스 템플릿 Media Services v3를 참조하세요.
재생 테스트의 경우 Windows 10에서 유니버설 Windows 애플리케이션을 사용할 수 있습니다.
Windows 10 유니버설 샘플적응 스트리밍 샘플 이라는 기본 플레이어 샘플이 있습니다. 다운로드한 비디오를 선택하는 코드를 추가하고 적응 스트리밍 원본 대신 소스로 사용합니다.
자세한 정보
자세한 내용은 FAQ Content Protection을 참조하세요.
Widevine은 Google Inc.에서 제공하는 서비스이며 Google, Inc.의 서비스 약관 및 개인 정보 취급 방침을 따릅니다.
도움말 및 지원 받기
다음 방법 중 하나로 Media Services에 질문하거나 업데이트를 따를 수 있습니다.