Widevine DRM - ошибка при запросе нескольких ключей DRM на FireTV - PullRequest
0 голосов
/ 21 февраля 2019

В моем приложении я использую exoplayer для воспроизведения видеопотоков DASH.Потоки защищены DRM с помощью WIDEVINE.Мой DashManifest имеет несколько ключей.Один ключ для SD и один ключ для HD-потока.Когда я запускаю видео на FireTV, я получаю эту ошибку:

xoPlayerImplInternal: Playback error. com.google.android.exoplayer2.ExoPlaybackException at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.shouldWaitForKeys(MediaCodecRenderer.java:896) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:783) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:606) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61) Caused by: com.google.android.exoplayer2.drm.DrmSession$DrmSessionException: android.media.MediaDrm$MediaDrmStateException: Failed to get key request: DRM vendor-defined error: -2998 at com.google.android.exoplayer2.drm.DefaultDrmSession.onError(DefaultDrmSession.java:422) at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeysError(DefaultDrmSession.java:417) at com.google.android.exoplayer2.drm.DefaultDrmSession.postKeyRequest(DefaultDrmSession.java:368) at com.google.android.exoplayer2.drm.DefaultDrmSession.doLicense(DefaultDrmSession.java:300) at com.google.android.exoplayer2.drm.DefaultDrmSession.acquire(DefaultDrmSession.java:162) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:558) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:935) at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:522) at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:589) at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518) at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61)

Я понятия не имею, что не так с этим устройством или моей конфигурацией.Может кто-нибудь объяснить мне, что Failed to get key request: DRM vendor-defined error: -2998 точно означает?

1 Ответ

0 голосов
/ 21 февраля 2019

Эта ошибка обычно связана с ошибками, характерными для конкретного устройства, которые, к сожалению, часто требуют, чтобы поставщик устройства предоставил информацию и исправления.

Об этой конкретной проблеме также сообщалось на форумах Amazon (возможно, это вы или вашотчет коллег также): https://forums.developer.amazon.com/questions/187540/error-by-requesting-drm-keys-1.html

Вы можете видеть там, что проблема даже кажется специфической для определенного поколения устройств FireTV.

Я думаю, что это может быть полезно для васприсоединяйтесь и отслеживайте этот разговор, так как поставщик устройств часто будет определять приоритеты проблем, затрагивающих несколько человек.

Кроме того, примечание с несколькими ключами может вообще не относиться к проблеме, но существует несколько различных толкований того, какэто должно быть обработано в ExoPlayer, и существует открытая проблема (на момент написания) с несколькими ключами и воспроизведением в автономном режиме, которая содержит очень хороший обзор (в основном некоторые реализации предполагают, что сервер DRM вернет все ключи, даже если только одна дорожкапросили и тэто не обязательно правильное предположение): https://github.com/google/ExoPlayer/issues/3872#issuecomment-367274776

...