Exoplayer - Widevine和MPEG DASH

时间:2015-09-30 09:53:19

标签: mpeg-dash exoplayer widevine

我正在尝试使用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 个答案:

答案 0 :(得分:1)

我终于解决了它。问题出在设备上,我用它进行测试。此设备是三星Galaxy S4与Android 5.0.1。当我在不同的设备(Nexus 5,一些三星平板电脑等)上尝试我的代码时,它工作正常。因此可能在Galaxy S4中存在一些错误或缺少对Widevine Modular的支持。