小编La0*_*0x1的帖子

在 JSON 对象中发送 Uint8Array (BSON)

我在浏览器中使用“ 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)

javascript arrays json bson uint8array

6
推荐指数
1
解决办法
2万
查看次数

使用 VueJS 设置 srcObject 的替代方法

设置 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

javascript webrtc vue.js vuex vuejs2

5
推荐指数
3
解决办法
4932
查看次数

标签 统计

javascript ×2

arrays ×1

bson ×1

json ×1

uint8array ×1

vue.js ×1

vuejs2 ×1

vuex ×1

webrtc ×1