You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 13设备ExoPlayer DRM会话报错:IllegalArgumentException: {}: BAD_VALUE

解决ExoPlayer 2.18.2在Android 13设备上的DRM BAD_VALUE错误

可能的修复方向

1. 排查DRM参数格式问题

Android 13对MediaDrm的参数校验比旧版本严格很多,空值、格式不匹配的参数都会直接触发BAD_VALUE异常:

  • 检查构建MediaDrm.KeyRequest时传入的optionalParameters,别传空HashMap或者值类型不对的键值对,比如把数字类型的值当成字符串传。
  • 去掉那些旧Android版本允许但Android 13不兼容的冗余参数,比如空字符串参数。

2. 升级ExoPlayer到新版本

ExoPlayer 2.18.2没有针对Android 13的DRM行为变化做适配,官方在2.19.x及以后版本修复了这类兼容性问题:

  • 直接升级到2.19.x或更高稳定版,大概率能解决这个参数校验导致的异常。

3. 规范DRM会话生命周期管理

Android 13对DRM会话的资源管理要求更严:

  • 确保不用的DRM会话及时调用MediaDrm.closeSession()释放,别让无效会话占用资源。
  • 避免重复创建同一内容的DRM会话,Android 13不允许这种操作。

4. 验证DRM内容与证书兼容性

  • 检查内容的DRM加密轨道信息,确认没有参数缺失或格式错误的情况,Android 13对轨道参数的合法性校验更严格。
  • 确认使用的DRM证书(比如Widevine证书)是兼容Android 13的,旧证书可能被判定为无效参数。

日志排查技巧

如果上面的方法都没用,重点看异常触发前的DRM相关日志:

  • 定位抛出IllegalArgumentException的具体代码位置,看是密钥请求阶段还是会话创建阶段出的问题。
  • 打印MediaDrm相关参数的具体值,对比Android 12和13下的参数差异,找出不兼容的项。

内容的提问来源于stack exchange,提问作者Bartolomé Mejía

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 01:08:13