小编jib*_*jib的帖子

Changing FocusMode not working using MediaStream API in Google Chrome

In Google Chrome Browser i was able to get live feed of my connected USB Camera using getUserMedia() API. I have a slider to change the brightness value and this is working fine. I also want focusMode to toggle from continuous to manual(The camera always starts with continuous focusMode).

I have the below Javascript code to change FocusMode.

const video_constraints ={};

//Create the following keys for Constraint
video_constraints.video = {};
video_constraints.video.width = {};
video_constraints.video.width.exact = 1920; //set video width …
Run Code Online (Sandbox Code Playgroud)

javascript w3c image-capture getusermedia mediastream

5
推荐指数
0
解决办法
461
查看次数

如何从字节数组创建示例 webm 文件

我正在开发一个屏幕捕获应用程序,并且能够使ondataavailable事件工作并以块的形式获取数据,我将其进一步转换为 blob,但是当我通过 websocket 将相同的数据流发送到服务器并将该流另存为 webm 文件时磁盘然后播放文件,该文件不播放任何内容。我认为该文件需要一些我不确定的元信息。

有什么建议?

这是我的 javascript 代码:

socket.emit('message', new Blob([event.data], {type: 'video/webm'}));

服务器保存代码:

fs.writeFile("d://test.webm", data, "binary", function(err) { });

javascript websocket webrtc get-display-media

5
推荐指数
1
解决办法
928
查看次数

从 getUserMedia 对音轨应用约束

是否可以对正在运行的实时音轨应用约束?它似乎对我不起作用,至少在 Chrome v80 上。

假设我有一个流:

const stream = await navigator.mediaDevices.getUserMedia({
  audio: {
    autoGainControl: true
    channelCount: 2
    echoCancellation: true
    noiseSuppression: true
  },
  video: false
});
Run Code Online (Sandbox Code Playgroud)

现在,稍后我想更改其中一些参数:

for (const track of stream.getAudioTracks()) {
  track.applyConstraints({
    autoGainControl: false,
    echoCancellation: false,
    noiseSuppression: false
  });
}
Run Code Online (Sandbox Code Playgroud)

这没有效果。如果我调用track.getConstraints(),我会看到我的新约束,但在我重新加载页面并从头开始应用它们之前,我会听到它们没有任何影响。此外,当我打电话track.getSettings(),我看到我的新的制约还没有得到应用。

我也试过track.enabled = false在应用约束之前打电话,track.enabled = true之后没有运气。

关于如何在不拨打新电话的情况下使其工作的任何建议getUserMedia()

javascript google-chrome webrtc getusermedia mediastream

4
推荐指数
1
解决办法
1713
查看次数

Async wait 实际上是阻塞调用吗?

private async Task<string> GetStateInfo()
{
   var cityId = await GetCityIdByNameAsync("Delhi");
   var state = await GetStateNameAsync(cityId);
   return state;
}
Run Code Online (Sandbox Code Playgroud)

我们知道async和await用于异步编程,它们用于非阻塞编程模型。但在上面的代码中 var state = wait GetStateNameAsync(cityId); 当第一行执行时执行,因为它从中获取输入。所以我不明白这是阻塞调用还是非阻塞调用?

c# async-await

4
推荐指数
1
解决办法
1230
查看次数

如何在Chrome中为WebRTC调用者设置远程描述而不会出现错误?

我希望逻辑上没有缺陷。

步骤1:呼叫者创建报价

步骤2:呼叫者设置localDescription

步骤3:呼叫者将描述发送给被呼叫者

// ------------------------------------------------ ------ //

步骤4:被叫方收到要约集的远程描述

步骤5:被叫方创建答案

步骤6:被叫方设置本地描述

步骤7:被呼叫者将说明发送给呼叫者

// ------------------------------------------------ ------ //

步骤8:呼叫者收到答案并设置远程描述

这是上面的代码

const socket = io();
const constraints = {
  audio: true,
  video: true
};
const configuration = {
  iceServers: [{
    "url": "stun:23.21.150.121"
  }, {
    "url": "stun:stun.l.google.com:19302"
  }]
};

const selfView = $('#selfView')[0];
const remoteView = $('#remoteView')[0];

var pc = new RTCPeerConnection(configuration);

pc.onicecandidate = ({
  candidate
}) => {
  socket.emit('message', {
    to: $('#remote').val(),
    candidate: candidate
  }); …
Run Code Online (Sandbox Code Playgroud)

javascript sdp webrtc peer-connection rtcpeerconnection

3
推荐指数
1
解决办法
2051
查看次数

即使我们确切地知道连接的路由,缓存 ICE 候选者和 sdp 是否也不起作用?

我知道在 P2P 和更动态的环境中缓存 ICE 候选者和 sdp 并不是一个好的做法,因为你缓存的东西可能无法申请下一个 WebRTC 连接。但是,在我们确切知道连接路线应该如何的情况下呢?

更具体,

  1. 假设我们有 1 个 TURN 服务器(没有负载平衡,因此没有内部路由)
  2. 以及 2 个具有固定 IP 的对等点,希望不时使用 WebRTC 连接。

在这种情况下,我们确切地知道对等点的 IP 是什么,并且我们确切地知道 TURN 服务器的 IP 是什么(假设它不会改变),是否可以缓存 ICE 候选(TURN)和 SDP 或SDP 的部分只是为了绕过 ICE 候选者和 SDP 交换部分?

javascript ice stun webrtc turn

3
推荐指数
1
解决办法
1412
查看次数

ES6承诺:如何使用参数链接函数

如何将功能与延迟联系起来.我尝试了以下方法:

Promise.resolve()
.then(setKeyframe('keyframe-0'))
.then(delay(3000))
.then(setKeyframe('keyframe-1'))
.then(delay(3000))
.then(setKeyframe('keyframe-2'))
;

function delay(ms) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, ms);
  });
}

function setKeyframe (name) {
  var element = document.getElementsByClassName('animation-container')[0];
  element.className = 'animation-container ' + name;
}
Run Code Online (Sandbox Code Playgroud)

所有功能似乎都是紧接着调用的.延迟功能不会延迟链.我错过了什么?

javascript promise ecmascript-6 es6-promise

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

无限期地循环承诺直到被拒绝

我有一个执行一些异步工作并返回 a 的函数,Promise我想无限期地执行这个函数,直到rejected承诺。

类似于以下内容:

doSomethingAsync().
    .then(doSomethingAsync)
    .then(doSomethingAsync)
    .then(doSomethingAsync)
    // ... until rejection
Run Code Online (Sandbox Code Playgroud)

我做了一个 CodePen,所以我可以测试潜在的解决方案:http ://codepen.io/JesmoDrazik/pen/pbAovZ?editors=0011

我找到了几个可能的答案,但似乎对我的情况没有任何作用。

如果有人有解决方案,我会很高兴,因为我找不到任何东西!

谢谢。

javascript loops promise es6-promise

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

getUserMedia() 的分辨率限制无法正常工作 (WebRTC)

我是 WebRTC 新手,正在 Chrome 中测试一个简单的视频流应用程序。我有三种不同类型的约束,具有以下解决方案:

qvga:320 x 240,vga:640 x 480,hdVga:1280 x 720。

当我捕获媒体时,它运行良好。但是,当我从分辨率开始qvga并单击任何其他按钮时,它会很好地加载对象,我什至可以观察约束console.log。另外两个分辨率设置,vgahdVga它不反映窗口中的任何变化。同样,当我重新加载页面并从hdVga按钮开始时,它反映了vga屏幕上的分辨率,而对象属性显示了约束hdVga,我无法找出问题。

HTML:

<head>
<!--<link rel="stylesheet" href="style.css" type="text/css"/>-->

</head>
<body>
    <video id="localVideo" controls poster="images/posterImage.png" ></video>
        <div id="buttons">
<button id="qvga">320x240</button>
<button id="vga">640x480</button>
<button id="hd">1280x720</button>
</div>
    <video id="remoteVideo" poster="images/posterImage.png" ></video>

    </script src="videoplayer.js"></script>
    <script src="adapter.js"></script>
    <script>
        var qVga = document.querySelector("button#qvga");
        var vga = document.querySelector("button#vga");
        var hdVga = document.querySelector("button#hd");
        var qVgaConstraints = {video:{
            mandatory:{
                maxWidth: 320,
                maxHeight: 240
            } …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome constraints webrtc getusermedia

1
推荐指数
1
解决办法
3702
查看次数

带有手动信令的WebRTC数据通道,例如?

我真的很难获得一个完整的WebRTC数据通道示例示例,该示例可以复制/粘贴并且可以正常工作。

我想要一个带有手动信令的WebRTC数据通道的Javascript示例,即在加载示例时,它在一个文本框中提供了Signaling数据。我手动复制数据(突出显示,复制),然后将其粘贴到对等方的窗口中,该窗口具有一个接受该信令数据的文本框。我相信信令数据中需要有一个“答案”,因此也需要有相应的文本框等待该输入。谢谢。

示例可以使用Google的免费STUN服务器。

我对一些示例感到困惑,我想要一个文件,其中包含HTML和Javascript(请不要CSS或JQuery)。仅在Chrome上运行代码就足够了。谢谢。

javascript channel webrtc signaling rtcdatachannel

1
推荐指数
1
解决办法
365
查看次数

不支持navigator.mediaDevices.getDisplayMedia

我正在尝试构建一个可以捕获用户桌面的Web应用程序。我发现此网络api应该可以很好地完成这项工作,但是我似乎无法使其正常工作。现在,应该通过启用标记在最新版本的Edge和Chrome 70上都支持它,但是如果我正在查看导航器对象,则在两种浏览器中都应支持该功能。getDisplayMedia()功能均不存在。我也尝试调用该函数,但收到一条错误消息,说它不是函数(确认它实际上不在导航器中)。可能是什么问题呢?

提前致谢!

编辑:这是我的javascript

function na() {
    navigator.mediaDevices.getDisplayMedia({
        video: {
            mandatory: {
                chromeMediaSource: 'desktop',
                minWidth: 1280,
                maxWidth: 1280,
                minHeight: 720,
                maxHeight: 720
            }
        }
    }).then((stream)=>console.log(stream))
    console.log(navigator)

}

na();
Run Code Online (Sandbox Code Playgroud)

javascript webrtc get-display-media

0
推荐指数
1
解决办法
1587
查看次数