当前位置: 首页 > 知识库问答 >
问题:

Exoplayer-Widevine和MPEG DASH

宇文梓
2023-03-14

我正在尝试实施Android应用程序来播放受小程序保护的视频。我在Exoplayer上构建我的应用程序,但我对MediaDrm有问题。

android.media.MediaDrm$MediaDrmStateException: Failed to get key request: DRM vendor-defined error: -2998
            at android.media.MediaDrm.getKeyRequest(Native Method)
            at com.google.android.exoplayer.drm.StreamingDrmSessionManager.postKeyRequest(StreamingDrmSessionManager.java:370)
            at com.google.android.exoplayer.drm.StreamingDrmSessionManager.openInternal(StreamingDrmSessionManager.java:314)
            at com.google.android.exoplayer.drm.StreamingDrmSessionManager.open(StreamingDrmSessionManager.java:284)
            at com.google.android.exoplayer.MediaCodecTrackRenderer.maybeInitCodec(MediaCodecTrackRenderer.java:325)
            at com.google.android.exoplayer.MediaCodecTrackRenderer.onInputFormatChanged(MediaCodecTrackRenderer.java:739)
            at com.google.android.exoplayer.MediaCodecTrackRenderer.readFormat(MediaCodecTrackRenderer.java:511)
            at com.google.android.exoplayer.MediaCodecTrackRenderer.doSomeWork(MediaCodecTrackRenderer.java:492)
            at com.google.android.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:417)
            at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:205)

我有这个异常。我发现这个异常被抛出在这行代码中:

keyRequest = mediaDrm.getKeyRequest(sessionId, schemeData, mimeType, MediaDrm.KEY_TYPE_STREAMING, params);

方法的所有参数都设置正确,但调用此方法失败,并引发上述异常。

你知道我该怎么解决吗?谢谢你的帮助。

共有1个答案

陆俊捷
2023-03-14

我终于解决了。问题出在我用来测试的设备上。该设备为三星Galaxy S4,搭载Android 5.0.1。当我在不同的设备(Nexus 5、一些三星平板电脑等)上尝试我的代码时,它工作得很好。因此,银河S4中可能存在一些缺陷或缺少Widevine模块的支持。

 类似资料:
  • 我想在我的应用程序中播放Widevine Modular-DASH视频,我想使用或。 是否有任何示例如何设置它?或者您可以提供任何示例代码如何获取许可证?我有视频的URL和Widevine服务器URL。 在我们使用Widevine经典之前,许可证请求如下所示: 然后 之后,视频在VideoView或ExoPlayer上播放。

  • 我正在尝试使用Exoplayer在Android电视应用程序上播放Widevine加密内容。我有我的视频URL,它是从CDN提供的,并且是通过票证获得的。我有我的widevine许可证URL、许可证服务器的票证和身份验证令牌。 我正在创建一个drmSessionManager,将许可证服务器所需的必要标头放入其中,如下所示: 在这个Exoplayer处理了大部分内容之后,将命中以下断点。 我可以观

  • 我正在尝试为ExoPlayer 2实现离线DRM支持,但我有一些问题。 我找到了这段对话。ExoPlayer 1有一些实现。以及如何使用ExoPlayer 2实现的一些步骤。十、 我对离线DrmSessionManager有问题,which实现了DrmSessionManager。在该示例中,是从ExoPlayer 1导入的DrmSessionManager。x、 如果我从ExoPlayer 2导

  • 你好,我正在开发一个应用程序,我可以在其中使用widevine drm保护来播放dash stream。我已经阅读了exoplayer的示例,但我的需求不同,我会在我的网站上,当单击dash url时,它将开始在exoplayer中播放流。我已经成功地完成了打开exoplayer活动的第一部分,但是我不知道如何在exoplayer上运行受drm保护的流。 我知道流和drm许可证url。 我正在编写

  • 我已使用Azure媒体服务存储加密视频 有人能帮我解决以下问题吗: 我从哪里获得Widevine许可证URL,以便在Exo Player中播放视频 提前感谢。

  • 我有一个视频DASH DRM Widevine的应用程序。在模拟器和某些电视盒中,读取许可证时出错,并且不会播放受保护的内容。我想要实现的是,如果许可证有错误,可以执行其他一些功能。 谢谢