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

如何在JW Player中配置带DRM的播放列表?解决对象不可扩展报错

解决JW Player用sources数组配置DRM时的报错问题

你碰到的Cannot add property default, object is not extensible错误,本质是JW Player处理sources数组时,要么没明确每个源的媒体类型,要么DRM配置结构不符合要求,导致内部无法正常扩展对象。下面是具体解决办法:

1. 给每个source添加type字段

JW Player必须明确知道每个流的媒体容器类型,比如HLS流要指定application/x-mpegURL,DASH流指定application/dash+xml,否则无法正确解析,触发对象扩展错误。

正确配置示例:

jwplayer.setup({
  playlist: [{
    sources: [
      { 
        file: '你的HLS流地址', 
        type: 'application/x-mpegURL'
      },
      { 
        file: '你的DASH流地址', 
        type: 'application/dash+xml'
      }
    ],
    drm: {
      widevine: {
        url: '你的Widevine DRM授权地址'
      },
      playready: {
        url: '你的PlayReady DRM授权地址'
      },
      fairplay: {
        url: '你的FairPlay DRM授权地址',
        certificateUrl: '你的FairPlay证书地址'
      }
    }
  }]
});

2. 确保DRM配置位置正确

DRM配置必须放在播放列表的子对象中(即playlist[]的直接子对象里),不能嵌套到单个source内部,这是JW Player的标准结构要求,位置错误会导致解析异常。

3. 升级JW Player版本

如果使用的是较旧版本的播放器,可能存在sources数组处理的bug,建议升级到最新稳定版(比如JW Player 8.x及以上),新版本修复了不少这类对象扩展相关的问题。

4. 避免使用不可扩展的source对象

如果你的代码中对source对象执行了Object.freeze()这类锁定操作,会直接触发该错误,确保所有source都是普通的可扩展对象。

配置完成后,可右键播放器选择「开发者工具」查看媒体加载日志,确认DRM是否正常初始化、sources是否被正确识别。

内容的提问来源于stack exchange,提问作者webdif

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:02:39