首页 > 解决方案 > 媒体对象不响应包含对象的 cookie

问题描述

抱歉,如果问题非常愚蠢,我正在尝试使用 js 将流从一个人显示给另一个用户

我试过把它放在一个cookie中,但即使那样它也不起作用。即使视频中的对象与另一个对象相同

文件 1

var video = document.querySelector("#videoElement");
var x=document.cookie
console.log(x)
video.srcObject = x;

文件 2

var video = document.querySelector("#videoElement");

if (navigator.mediaDevices.getUserMedia) {
  navigator.mediaDevices.getUserMedia({ video: true })
    .then(function (stream) {
      video.srcObject = stream;
      document.cookie=video.srcObject 
      console.log(stream,video.srcObject)
    })
    .catch(function (err0r) {
      console.log("Something went wrong!");
    });
console.log(stream,video.srcObject)
}

我现在只想在两页上展示它,但是如果你知道你可以分享它,我应该用什么语言来存储视频

标签: javascriptobjectvideocookiesmedia

解决方案


cookie 不是网络上的集中式通用相机访问存储库。谢天谢地。

AMediaStream是表示活动相机使用的本地资源对象,而不是可共享的URL

该对象仅存在于您的本地 JS 页面中,无法在 Web 上寻址。

由于它不存在于任何服务器上,因此将图形位从您的相机传输到朋友的系统需要相当多的繁重工作。这包括建立一个RTCPeerConnection,它是WebRTC的域:

navigator.mediaDevices.getUserMedia({ video: true })
  .then(function (stream) {
    const iceServers = [{urls: "stun:stun.l.google.com:19302"}];
    const pc = new RTCPeerConnection({iceServers});

    for (const track of stream.getTracks())
      pc.addTrack(track, stream);

    /* lots of other WebRTC negotiation code */

您通常还需要某种类型的服务器,既可以解决发现问题(即联系点),也需要一个 Web 套接字服务器来交换两个对等方之间建立连接所必需的关键提议/回答会话描述。

也许最简单的概念证明是这个 cut'n'paste 演示,它让您和朋友手动交换所需的 WebRTC 提议/回答会话描述,让您在没有任何服务器的情况下建立连接,互相查看和交谈。

这有大约 70% 的工作机会。如果你们都在对称 NAT(大多数移动网络)之后,那么它会变得更加困难(您需要一个 TURN 服务器,这需要花钱)。


推荐阅读