【发布时间】:2020-09-29 04:17:17
【问题描述】:
我正在尝试将 mp4 视频流从 Django 加载到 Vue.js。我遵循解决方案here 并通过我的axios API 获得了一个字节字符串,我将其连接到data:video/mp4;base64,,然后将其绑定到视频标签的:src 属性,但视频没有显示。这是将视频从 Django 3 流式传输到 Vue.js 的正确方法吗?我做错了什么?
Api.js 代码 sn-p:
import axios from 'axios'
export default () => {
return axios.create({
baseURL: `http://127.0.0.1:8000/`,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
}
})
}
Video.vue组件代码sn-p:
methods: {
async stream() {
return await VideoService.stream(this.video)
.then(function(data) {
return data.data;
});
}
},
props: ['data'],
watch: {
data: {
deep: true,
immediate: true,
handler(curr, prev) {
this.video = curr;
this.stream().then(data => {
data = Buffer.from(data, 'binary').toString('base64');
this.video = 'data:video/mp4;base64,'+data;
});
}
}
}
正如该答案的 cmets 中所建议的,我还将 src 设置为 Django api 端点,例如src="/video/test.mp4,但我可以在终端中看到它没有到达 Django 路由。如何让链接的解决方案与 Vue.js 一起使用?
【问题讨论】:
-
尝试确保您的 html 是正确的。见jsfiddle.net/45y3wtj0。您能否在代码中重新创建该视频?然后将
src属性替换为您服务器的端点 url。 -
@KevinLee 是的。该视频链接适用于我的 vue 代码。
-
现在检查您的端点是否正确。使用 curl 或 Postman 之类的工具,您能否成功访问 Django 端点?
-
@KevinLee 是的,与邮递员合作。在邮递员 ui 中显示我的视频。
-
好的,那你的错误一定在别处
标签: django vue.js axios video-streaming html5-video