【问题标题】:Widevine DRM - Error by requesting multiple DRM Keys on FireTVWidevine DRM - 在 FireTV 上请求多个 DRM 密钥时出错
【发布时间】:2023-03-06 12:16:02
【问题描述】:

在我的应用中,我使用 exoplayer 播放 DASH 视频流。流受到 WIDEVINE 的 DRM 保护。我的 DashManifest 有多个键。一键标清,一键高清流。当我在 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 的确切含义吗?

【问题讨论】:

    标签: android exoplayer drm amazon-fire-tv widevine


    【解决方案1】:

    此错误通常与特定于设备的错误相关,不幸的是,这些错误通常需要设备供应商提供信息和修复。

    亚马逊论坛也报道过这个问题(可能是你或你同事的报道):https://forums.developer.amazon.com/questions/187540/error-by-requesting-drm-keys-1.html

    您可以在此处看到该问题甚至似乎是特定一代 FireTV 设备所特有的。

    我认为加入和跟踪对话可能对您有用,因为设备供应商通常会优先考虑影响多人的问题。

    顺便说一句,multiple key note 可能根本与问题无关,但是对于在 ExoPlayer 中应该如何处理这个问题有一些不同的解释,并且有一个未解决的问题(在撰写本文时)多个键和离线播放,其中包含一个非常好的概述(基本上一些实现假设 DRM 服务器将返回所有键,即使只请求一个轨道,这不一定是正确的假设):https://github.com/google/ExoPlayer/issues/3872#issuecomment-367274776

    【讨论】:

    • 感谢您的回答。你发的这个问题是我问的。正如你所看到的,我从来没有得到非常糟糕的亚马逊支持的回应。你发给我的另一个问题有点不同。我正在尝试为在线而不是为离线流获取 DRM 密钥。 stacktracke 与我的不同
    • 我知道这个错误是特定于设备的,但我会理解这里发生了什么以及为什么我在这个设备上收到这个错误。
    • @dudi 向设备上的 DRM 插件发送密钥请求时发生的问题。 DRM 插件在生成许可证请求的有效负载方面存在一些问题。选择高清内容是否出现问题?还是同时用于标清和高清轨道?这可能与widevine使用规则和设备功能有关。
    猜你喜欢
    • 2018-09-17
    • 2015-07-19
    • 2014-10-21
    • 2017-11-15
    • 1970-01-01
    • 2018-12-13
    • 2018-07-11
    • 2019-09-24
    • 2017-06-01
    相关资源
    最近更新 更多