【发布时间】:2018-02-03 21:36:14
【问题描述】:
设置 html 视频元素的“src”属性不适用于 Vue.js 和 Vuex:
<video id="myVideoEl" :src="myStreamSrc" autoplay="autoplay">
myStreamSrc 是一个计算值,由事件处理程序设置为突变:
AddStream: function (state, plMyStream) {
state.myRTCPeerConnection.addStream(plMyStream)
state.myStreamSrc = plMyStream
}
当我使用该代码运行我的应用程序时,我收到以下错误:
不支持“text/html”的HTTP“Content-Type”。媒体负载 资源http://localhost:8080/[object%20MediaStream] 失败。
当我执行以下操作时:
state.myVideoEl = document.querySelector('#myVideoEl')
state.myVideoEl.srcObject = payloadWithMyStream
我没有收到任何错误,并且显示了流。问题是,我不能使用被剪断的工作代码,因为引用的元素稍后会添加到 DOM 中。当我使用 v-if Vuex.js 属性绑定 div 中的 html 视频元素时,此代码 sn-p 不起作用。然后我得到“未定义”的结果(因为页面加载时不存在带有视频元素的 div 元素)。
设置srcObject 和设置src 属性有区别吗?我以为当我设置srcObject 时,video 元素会有一个src 属性,但它没有。
是否可以在video html属性中设置srcObject?
更多信息,请访问我的 Vue.js 论坛: https://forum.vuejs.org/t/reference-elements-when-they-rendered-with-v-if/16474/13
【问题讨论】:
-
你试过
<video v-if="myStreamSrc" id="myVideoEl" :src="myStreamSrc" autoplay="autoplay">吗? -
尝试了您的建议。我得到同样的错误。
标签: javascript vue.js webrtc vuejs2 vuex