首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Exoplayer DownloadTracker:获取离线DRM license失败

Android Exoplayer DownloadTracker:获取离线DRM license失败
EN

Stack Overflow用户
提问于 2021-04-05 14:34:59
回答 1查看 287关注 0票数 0

我需要脱机播放受DRM保护的内容。

但是,在构建DRM会话后,会抛出以下错误:

无法获取脱机DRM许可证com.google.android.exoplayer2.drm.DrmSession$DrmSessionException: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException:响应代码:403at com.google.android.exoplayer2.drm.DefaultDrmSession.onError(DefaultDrmSession.java:524) at com.google.android.exoplayer2.drm.DefaultDrmSession.onKeysError(DefaultDrmSession.java:519) 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:563) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.os.Handler.dispatchMessage(Handler.java:106)由以下原因引起: com.google.android.exoplayer2.drm.MediaDrmCallbackException: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 403at com.google.android.exoplayer2.drm.HttpMediaDrmCallback.executePost(HttpMediaDrmCallback.java:194) at android.os.Looper.loop(Looper.java:164) at com.google.android.exoplayer2.drm.HttpMediaDrmCallback.executeKeyRequest(HttpMediaDrmCallback.java:153) at com.google.android.exoplayer2.drm.DefaultDrmSession$RequestHandler.handleMessage(DefaultDrmSession.java:602) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164)错误由: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 403 at com.google.android.exoplayer2.ext.cronet.CronetDataSource.引起在com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)在com.google.android.exoplayer2.upstream.DataSourceInputStream.checkOpened(DataSourceInputStream.java:101)在com.google.android.exoplayer2.upstream.DataSourceInputStream.read(DataSourceInputStream.java:81)在com.google.android.exoplayer2.upstream.DataSourceInputStream.read(DataSourceInputStream.java:75)在com.google.android.exoplayer2.util.Util.toByteArray(Util.java:174)在com.google.android打开(CronetDataSource.java:588)。exoplayer2.drm.HttpMediaDrmCallback.executePost(HttpMediaDrmCallback.java:177)在com.google.android.exoplayer2.drm.HttpMediaDrmCallback.executeKeyRequest(HttpMediaDrmCallback.java:153)在com.google.android.exoplayer2.drm.DefaultDrmSession$RequestHandler.handleMessage(DefaultDrmSession.java:602)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper.java:164)在android.os.HandlerThread.run(HandlerThread.java:65)

EN

回答 1

Stack Overflow用户

发布于 2021-04-08 19:49:37

此错误显示DRM服务器使用403响应进行响应。

此响应代码表示:

6.5.3。403禁止

403 (禁止)状态码表示服务器理解请求,但拒绝授权。希望公开请求被禁止的原因的服务器可以在响应有效负载(如果有的话)中描述该原因。

(https://www.rfc-editor.org/rfc/rfc7231#page-59)

因此,您的请求已正确发送到DRM服务器,并且DRM服务器能够理解它,但它不会向您发送许可证作为响应。通常,DRM服务器不会提供太多拒绝请求的细节,以尽量减少信息收集攻击。

DRM服务器403响应的通常原因要么是因为在请求中缺少认证信息,要么是因为所包括的认证信息不允许该用户查看该特定内容。

在这一点上,最好的方法通常是与您的DRM服务器提供商交谈,并与他们分享详细的请求和响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66949119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档