问题描述
我正在尝试使用 Video.js 嵌入 YouTube 视频。
我使用 Django REST Framework 设置了 Vue,并且我正确地获取了我的嵌入代码,但是当我创建 Video.js 播放器时,源是“未定义的”,即使它被绑定也不会更新。 如果我对 YouTube 地址进行硬编码,而不是绑定,则播放器会加载。
App.vue
<template>
<div id="app">
<Video :embedCode="video.embedCode" />
</div>
</template>
<script>
import Video from "./components/Video";
import axios from 'axios';
export default {
name: 'App',components: {
Video
},data() {
return {
video: [],};
},methods: {
loadVideo: function() {
axios.get('/api/video/1').then(
response => {
this.video = response.data;
}
);
},},created() {
this.loadVideo();
},}
</script>
Video.vue
<template>
<div>
<video-player :embedCode="embedCode" />
</div>
</template>
<script>
import VideoPlayer from "./VideoPlayer";
export default {
name: "Video",props: {
text:String,id:Number,title:String,category:Number,description:String,embedCode:String,views:Number,components: {
VideoPlayer
},}
</script>
VideoPlayer.vue
<template>
<div>
<video ref="videoPlayer" class="video-js">
<source :src="videoURL" type="video/youtube" />
</video>
</div>
</template>
<script>
require('videojs-youtube')
import videojs from 'video.js';
export default {
name: "VideoPlayer",props: {
embedCode:String,computed: {
videoURL: function() {
return "https://www.youtube.com/watch?v=" + this.embedCode;
}
},mounted() {
this.player = videojs(this.$refs.videoPlayer)
},beforeDestroy() {
if (this.player) {
this.player.dispose()
}
},}
</script>
为什么会这样? 谢谢大家
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)