xdlumia / vue3-video-play

适用于 Vue3 的 hls.js 播放器组件,配置丰富,界面还算好看
https://codelife.cc/vue3-video-play/
602 stars 99 forks source link

怎么销毁组件或者中断请求流的方法,类似于dispose() #28

Open datong2000 opened 2 years ago

datong2000 commented 2 years ago

这个问题的优先级应该是高于其他的

video 里有一个 dispose() 方法可以销毁请求流

作者的组件里没有这个方法,导致了,切换路由时,请求流不会中断,即便把数据对象清空,依旧在一直发送请求

再次进入组件后,会进行累加前一次的请求流,进行多次重复的请求

datong2000 commented 2 years ago

大兄弟,你组件里应该加这一段,跳转页面的时候,播放器也就自动销毁了

onBeforeUnmount(() => {
  state.dVideo.pause()
  state.Hls.destroy()
  state.Hls = null;
})

Hls 变量加到了 state 对象里。使用 hls 解码那段,所有的 Hls 变量,都改成了 state.Hls

当然,你后期也可以单独出一个停止事件

EmiyaGm commented 2 years ago

同样的问题,现在只能fork组件自己改代码了吗?

qd19111 commented 2 years ago

大兄弟,你组件里应该加这一段,跳转页面的时候,播放器也就自动销毁了

onBeforeUnmount(() => {
  state.dVideo.pause()
  state.Hls.destroy()
  state.Hls = null;
})

Hls 变量加到了 state 对象里。使用 hls 解码那段,所有的 Hls 变量,都改成了 state.Hls

当然,你后期也可以单独出一个停止事件

这个怎么处理的呀,兄弟

datong2000 commented 2 years ago

兄弟,你组件里应该是这一段,截图的时候播放器,大片图片加了

onBeforeUnmount(() => {
  state.dVideo.pause()
  state.Hls.destroy()
  state.Hls = null;
})

Hls变量加到了state对象里。使用hls解密那段,所有的Hls变量,都改成了state.Hls 当然,你最近也可以单独出一个停止事件

这个怎么处理的呀,兄弟

把我上述的代码,复制到它源码里~,才可以 因为这是组件内部没有进行销毁处理,所以只能改源码了

leafhina commented 2 years ago

兄弟,你组件里应该是这一段,截图的时候播放器,大片图片加了

onBeforeUnmount(() => {
  state.dVideo.pause()
  state.Hls.destroy()
  state.Hls = null;
})

Hls变量加到了state对象里。使用hls解密那段,所有的Hls变量,都改成了state.Hls 当然,你最近也可以单独出一个停止事件

这个怎么处理的呀,兄弟

把我上述的代码,复制到它源码里~,才可以 因为这是组件内部没有进行销毁处理,所以只能改源码了

改了怎么生效啊,我改了源代码,不生效

EmiyaGm commented 2 years ago

兄弟,你组件里应该是这一段,截图的时候播放器,大片图片加了

onBeforeUnmount(() => {
  state.dVideo.pause()
  state.Hls.destroy()
  state.Hls = null;
})

Hls变量加到了state对象里。使用hls解密那段,所有的Hls变量,都改成了state.Hls 当然,你最近也可以单独出一个停止事件

这个怎么处理的呀,兄弟

把我上述的代码,复制到它源码里~,才可以 因为这是组件内部没有进行销毁处理,所以只能改源码了

改了怎么生效啊,我改了源代码,不生效

得重新打包更改你项目里的引用,或者你可以直接用我这里打包上传到 npm 上的

https://www.npmjs.com/package/vue3-video-play-emiyagm

uli45 commented 9 months ago

大佬改解决啦 这个问题都好几年啦 增加个销毁啦