MediaDrmStateException: Failed to handle key response: General DRM error

1.5k Views Asked by At

I am using Exoplayer to play Widevine DRM content for offline content playing. I have below params set for my widevine policy for test purpose: "rental_duration_seconds": 900 "playback_duration_seconds": 600 "license_duration_seconds": 300

The content play well until 10 minutes(playback_duration_seconds) after downloaded. Post that if i play, Exoplayer lib is trying to make license request. The license POST call is success but get below failure:

E/EventLogger: playerFailed [eventTime=2.14, mediaPos=0.00, window=0, period=0
com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:580)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:223)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.drm.DrmSession$DrmSessionException: android.media.MediaDrm$MediaDrmStateException: Failed to handle key response: General DRM error
at com.google.android.exoplayer2.drm.DefaultDrmSession.onError(DefaultDrmSession.java:514)
at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeysError(DefaultDrmSession.java:509)
at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeyResponse(DefaultDrmSession.java:494)
at com.google.android.exoplayer2.drm.DefaultDrmSession.access$100(DefaultDrmSession.java:58)
at com.google.android.exoplayer2.drm.DefaultDrmSession$ResponseHandler.handleMessage(DefaultDrmSession.java:554)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223) 
at android.os.HandlerThread.run(HandlerThread.java:67) 
Caused by: android.media.MediaDrm$MediaDrmStateException: Failed to handle key response: General DRM error
at android.media.MediaDrm.provideKeyResponse(Native Method)
at com.google.android.exoplayer2.drm.FrameworkMediaDrm.provideKeyResponse(FrameworkMediaDrm.java:228)
at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeyResponse(DefaultDrmSession.java:482)
at com.google.android.exoplayer2.drm.DefaultDrmSession.access$100(DefaultDrmSession.java:58) 
at com.google.android.exoplayer2.drm.DefaultDrmSession$ResponseHandler.handleMessage(DefaultDrmSession.java:554) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loop(Looper.java:223) 
at android.os.HandlerThread.run(HandlerThread.java:67) 

Questions:

  1. Reason for above error.
  2. While playing if the playback stops due to playback_duration_seconds_remaining becomes 0, is it possible to renew license and resume playback? How?
  3. When rental_duration expires is it possible to play the content with new license keys without re-downloading the content files?
0

There are 0 best solutions below