xgplayer icon indicating copy to clipboard operation
xgplayer copied to clipboard

引入 xgplayer-mp4 后无法播放视频

Open dengaye opened this issue 2 weeks ago • 2 comments

您使用的西瓜播放器版本是多少? What version of xgplayer are you using? xgplayer: 3.0.23 xgplayer-mp4: 3.0.23

您使用的操作系统和浏览器分别是? What OS and browser are you using? chrome: 105.0.5195.102 window 电脑

如何复现问题? How to reproduce the problem? 使用 plugins: [xgplayerMp4] 后视频就不播放了,没有任何报错

播放器代码:

xgPlayerRef.current = new SimplePlayer({
        id: `video_play`,
        url: videoUrl,
        autoplay: false,
        fluid: true,
        playsinline: true,
        autoplayMuted: true,
        controls: false,
        videoConfig: {
          crossOrigin: "anonymous"
        },
        height: window.innerHeight,
        width: window.innerWidth,
        plugins: [Mp4Plugin],
        mp4plugin: {
          maxBufferLength: 5,
          minBufferLength: 2
        }
     })

您期望的播放器正常行为是? What did you expect to happen? 引入插件可以正常播放视频

实际播放器的表现是? What actually happened? 不播放,控制台也没有报错。 看日志 xgplayer 就输出了这个,页面没有 video [xgplayer] setState state from:INITIAL to:READY [xgplayer] setState state from:READY to:ATTACHING

注释掉插件后播放器就可以播放了

可填写您所在的公司和相关产品业务,方便我们提供更好的技术支持 You can write your company and product which uses xgplayer, for helping us provide better technical support.

dengaye avatar Dec 09 '25 10:12 dengaye

@dengaye 方便贴一下视频文件吗?

gemxx avatar Dec 10 '25 05:12 gemxx

https://aa01ukulagb.feishu.cn/docx/AN1MdYFNvovVCTxZwM3cUn0Inji

dengaye avatar Dec 12 '25 02:12 dengaye

我试着把 mp4Plugin 换成 xgplayer-mp4-new 下可以播放

import { SimplePlayer } from 'xgplayer'
import Mp4Plugin from 'xgplayer-mp4-new'

const player = new SimplePlayer({
    // ...
    plugins: [Mp4Plugin]
    // ...
})

依赖版本

{
  "dependencies": {
    "xgplayer": "^3.0.0",
    "xgplayer-mp4": "^3.0.23",
    "xgplayer-mp4-new": "3.0.0-next.1"
  }
}

但是如果使用 xgplayer-mp4,始终会报如下错误

Uncaught (in promise) TypeError: Cannot read properties of null (reading 'getFragmentIdx')
    at _callee2$ (xgplayer-mp4.js?v=f266b20c:16810:33)
    at tryCatch (xgplayer-mp4.js?v=f266b20c:146:17)
    at Generator.<anonymous> (xgplayer-mp4.js?v=f266b20c:235:22)
    at Generator.next (xgplayer-mp4.js?v=f266b20c:173:21)
    at asyncGeneratorStep (xgplayer-mp4.js?v=f266b20c:432:24)
    at _next (xgplayer-mp4.js?v=f266b20c:450:9)
    at xgplayer-mp4.js?v=f266b20c:455:7
    at new Promise (<anonymous>)
    at Mp4Plugin2.<anonymous> (xgplayer-mp4.js?v=f266b20c:447:12)
    at Mp4Plugin2.changeDefinition (xgplayer-mp4.js?v=f266b20c:16845:22)

Screenshot

Image

这里似乎是 xgplayer/packages/xgplayer-mp4/src /mp4Plugin.jschangeDefinition callback 无法读取 this.mp4,this.mp4没有被初始。

cbingb666 avatar Dec 18 '25 09:12 cbingb666