surmon-china / videojs-player

@videojs player component for @vuejs(3) and React.
https://github.surmon.me/videojs-player
MIT License
5.25k stars 1.13k forks source link

TypeError: Cannot read property 'pause' of undefined #374

Open caoruiy opened 4 years ago

caoruiy commented 4 years ago

当播放一个格式不支持的视频时,销毁组件会导致以上错误信息 image

Vue.js version and component version

vue: 2.6.11 vue-video-player: 5.0.2

Steps to reproduce

在弹窗中预览视频文件,弹窗展示时传入当前视频的ID信息,从后端获取视频播放地址和封面等视频信息。 在所有数据获取后,才渲染播放组件。在外层做了一次简单的封装,只暴露视频地址和封面信息。

<vue-video
        ref="vueVideo"
        v-if="isReady"
        :video-url="videoUrl"
        :cover-image="coverImage"
      ></vue-video>

What is Expected?

正常销毁组件时,不会报错。

What is actually happening?

当加载一个不支持的视频格式时,由于v-if的存在,会自动销毁。销毁时会调用销毁函数,报错位置为:https://github.com/surmon-china/vue-video-player/blob/388e09f24dae09380f5b5699b0202ebef203446c/src/player.vue#L200

当前问题和 #343 、#288 为相同问题