引入 xgplayer-mp4 后无法播放视频
您使用的西瓜播放器版本是多少? 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 方便贴一下视频文件吗?
https://aa01ukulagb.feishu.cn/docx/AN1MdYFNvovVCTxZwM3cUn0Inji
我试着把 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
这里似乎是 xgplayer/packages/xgplayer-mp4/src /mp4Plugin.js 中 changeDefinition callback 无法读取 this.mp4,this.mp4没有被初始。