我在浏览器中使用“ bson ”npm 包将 JSON 对象转换/序列化为 BSON。文档说它返回一个 Node.js 缓冲区。Node.js 的文档说缓冲区的类型为“Uint8Array”。现在我想在另一个 JSON 对象 (infoJSON) 中发送这个 Uint8Array,但 JSON 不支持 Uint8Array。我尝试将缓冲区 (Uint8Array) 转换为简单数组,将其插入到 JSON 对象 (infoJSON) 中,然后直接从 JSON 对象将其转换回 Uint8Array。但是这个新的 Uint8Array 无法反序列化回原来的 person 对象(参见结果)。它被打破。
为什么我使用 BSON?我想将原始对象分割成多个块,以通过具有数据大小限制的WebRTC数据通道发送它。我需要能够识别每个块(类型)。这就是我使用嵌套对象的原因。
var personJSON = { 'name': 'sarah' } // JSON
var personBuffer = Bson.serialize(personJSON) // Uint8Array
var personArray = Array.from(personBuffer) // Simple array
var infoJSON = { 'count': 1, 'person': personArray } // Inserting array into JSON
var personUint8Array = Uint8Array.from(infoJSON.person) // Converting array back to Uint8Array
console.log('deserializedObj:') …Run Code Online (Sandbox Code Playgroud) 设置 html 视频元素的“src”属性不适用于 Vue.js 和 Vuex:
<video id="myVideoEl" :src="myStreamSrc" autoplay="autoplay">
Run Code Online (Sandbox Code Playgroud)
myStreamSrc 是一个计算值,并由事件处理程序在突变中设置:
AddStream: function (state, plMyStream) {
state.myRTCPeerConnection.addStream(plMyStream)
state.myStreamSrc = plMyStream
}
Run Code Online (Sandbox Code Playgroud)
当我使用该代码运行我的应用程序时,出现以下错误:
不支持“text/html”的 HTTP“Content-Type”。媒体资源http://localhost:8080/[object%20MediaStream] 加载失败。
当我执行以下操作时:
state.myVideoEl = document.querySelector('#myVideoEl')
state.myVideoEl.srcObject = payloadWithMyStream
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误,并显示了流。问题是,我不能使用剪切的工作代码,因为引用的元素稍后添加到 DOM 中。当我使用v-ifVuex.js 属性绑定 div 中的 html 视频元素时,此代码片段不起作用。然后我只是得到“未定义”的结果(因为页面加载时不存在带有视频元素的 div 元素)。
srcObject设置src属性和设置属性有区别吗?我以为当我设置srcObjectvideo 元素时会有一个src属性,但它没有。
是否可以srcObject在视频 html 属性中设置?
有关更多信息,请访问我在 Vue.js 论坛中的 theard:https ://forum.vuejs.org/t/reference-elements-when-they-rendered-with-v-if/16474/13