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

Next.js集成AWS IVS质量插件到Video.js时遇TypeError求助

问题分析与解决方案

错误根源

TypeError: e.extend is not a function 是由于Video.js版本与AWS IVS质量插件版本不兼容导致的。你使用的IVS质量插件1.18.0依赖Video.js的extend方法,但该方法在Video.js 8.x及以上版本中已被移除,若当前使用的是Video.js 8+,就会触发这个错误。

解决步骤

1. 版本匹配调整

  • 若使用Video.js 8.x+:升级IVS质量插件到支持该版本的最新版(如2.x系列),替换CDN地址:
    <Script onLoad={(e) => setIvsMountState(true)} src="https://player.live-video.net/2.1.0/amazon-ivs-quality-plugin.min.js" />
    
  • 若想保留IVS插件1.18.0:降级Video.js到7.x系列(比如7.21.1),确保API兼容。

2. 确认加载顺序

确保Video.js的加载早于IVS质量插件,避免videojs对象未完全初始化时调用registerIVSQualityPlugin。例如:

<!-- 先加载Video.js -->
<script src="https://vjs.zencdn.net/7.21.1/video.min.js"></script>
<!-- 再加载IVS质量插件 -->
<Script onLoad={(e) => setIvsMountState(true)} src="https://player.live-video.net/1.18.0/amazon-ivs-quality-plugin.min.js" />

3. 验证初始化逻辑

保持现有初始化代码不变,但确保ivsMountState仅在插件完全加载后设为true,避免提前调用插件方法:

const handlePlayerReady = (player) => {
    if (ivsMountState) {
        registerIVSQualityPlugin(videojs);
        player.enableIVSQualityPlugin();
    }

    playerRef.current = player;

    player.on('waiting', () => {
        console.log('player is waiting');
    });

    player.on('dispose', () => {
        console.log('player will dispose');
    });
    player.on('dblclick', function () { player.requestFullscreen(); });
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:13:26