Exoplayer - Widevine 和 MPEG DASH
Exoplayer - Widevine and MPEG DASH
我正在尝试实施 Android 应用来播放受 widevine 保护的视频。我在 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);
方法的所有参数设置正确,但调用此方法失败并抛出上述异常。
你知道我该如何解决吗?感谢您的帮助。
我终于解决了。问题出在我用于测试的设备上。此设备是 Android 5.0.1 的 Samsung Galaxy S4。当我在不同的设备(Nexus 5、一些三星平板电脑等)上尝试我的代码时,它运行良好。所以可能存在一些错误或缺少对 Galaxy S4 中 Widevine Modular 的支持。
我正在尝试实施 Android 应用来播放受 widevine 保护的视频。我在 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);
方法的所有参数设置正确,但调用此方法失败并抛出上述异常。
你知道我该如何解决吗?感谢您的帮助。
我终于解决了。问题出在我用于测试的设备上。此设备是 Android 5.0.1 的 Samsung Galaxy S4。当我在不同的设备(Nexus 5、一些三星平板电脑等)上尝试我的代码时,它运行良好。所以可能存在一些错误或缺少对 Galaxy S4 中 Widevine Modular 的支持。