webrtc 相关问题

WebRTC是一个免费的开放式项目,通过简单的API为浏览器和移动应用程序提供实时通信(RTC)功能。 WebRTC的API使丰富,高质量的RTC应用程序能够通过一组通用协议使用音频,视频和二进制数据流进行通信。

带有 simple-peer 的 React 组件似乎无法完成 ICE 服务器到 Janus WebRTC 服务器的连接

我正在开发基于 Vite-TS 的 React 应用程序和带有 Record&Play 插件的 Janus Gateway WebRTC 服务器;理想情况下,应用程序对等方会启动一切,提供媒体流,然后...

回答 1 投票 0

将 MediaDevices.enumerateDevices() 的值分配给 JavaScript 中的全局变量

我有一个关于JavaScript顺序的问题。让我先向您展示我的代码: 这是我的 HTML: 我有一个关于 JavaScript 顺序的问题。让我先向您展示我的代码: 这是我的 HTML: <video id="video" width="320" height="320" autoplay></video><br> <button id="snap">Snap Photo</button><br> <canvas id="canvas" width="320" height="320"></canvas> <p id="pngHolder"></p> 这是我的 JavaScript: <script> var Id; //List cameras and microphones. if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) { console.log("enumerateDevices() not supported."); } navigator.mediaDevices.enumerateDevices() .then(function (devices) { devices.forEach(function (device) { if (device.kind == "videoinput" && device.label.indexOf('back') >= 0) { Id = device.deviceId; alert("ID 1 : " + Id); } }); }) .catch(function (err) { console.log(err.name + ": " + err.message); }); // Put event listeners into place window.addEventListener("DOMContentLoaded", function () { // Grab elements, create settings, etc. alert("ID 2 : "+ Id); var canvas = document.getElementById("canvas"), videoObj = { video: { optional: [{ deviceId: Id }] } }, context = canvas.getContext("2d"), video = document.getElementById("video"), errBack = function (error) { console.log("Video capture error: ", error.code); }; // Trigger photo take document.getElementById("snap").addEventListener("click", function () { context.drawImage(video, 0, 0, 640, 480); // Get the image var image = convertCanvasToImage(canvas); // Actions document.getElementById("pngHolder").appendChild(image); // Converts canvas to an image function convertCanvasToImage(canvas) { var image = new Image(); image.src = canvas.toDataURL("image/png"); return image; } }); //alert("ID 2 : " + Id); // Put video listeners into place if (navigator.getUserMedia) { // Standard navigator.getUserMedia(videoObj, function (stream) { video.src = stream; video.play(); }, errBack); } else if (navigator.webkitGetUserMedia) { // WebKit-prefixed navigator.webkitGetUserMedia(videoObj, function (stream) { video.src = window.webkitURL.createObjectURL(stream); video.play(); }, errBack); } else if (navigator.mozGetUserMedia) { // Firefox-prefixed navigator.mozGetUserMedia(videoObj, function (stream) { video.src = window.URL.createObjectURL(stream); video.play(); }, errBack); } }, false); 我想将 device.deviceId 的值插入到我在 JavaScript 行第一行定义的变量 Id 中。它仍然是成功的(由 alert("ID 1 : " + Id); 表示)。但是当我尝试将其放入 optional: [{ deviceId: Id }] 时,Id 没有任何值。 而且,当我尝试使用浏览器运行它时,我发现首先显示的是 alert("ID 2 : " + Id); 而不是 alert("ID 1 : " + Id);。其实我已经把alert("ID 1 : " + Id);放在第一位了。我认为这就是变量仍然为空的原因。 我的问题是如何将 device.deviceId 值插入到 optional: [{ deviceId: Id }] ? navigator.mediaDevices.enumerateDevices 和 DOMContentLoaded 正在比赛,后者获胜,因此您在设置之前使用 Id。 要解决此问题,请使用临时 haveId 承诺: var haveId = navigator.mediaDevices.enumerateDevices() .then(devices => devices.find(d => d.kind == "videoinput" && d.label.indexOf("back") >= 0)); // Put event listeners into place window.addEventListener("DOMContentLoaded", function () { haveId.then(id => { // Grab elements, create settings, etc. alert("ID 2 : "+ id); var canvas = document.getElementById("canvas"), videoObj = { video: { deviceId: id } }, // <-- adapter.js constraints Promise 链创建依赖关系,这样,在这两件事都发生之前,getUserMedia代码不会继续执行。 第二个问题是你混合了新的和过时的 Chrome 特定约束。要么使用 adapter.js 直到 Chrome 赶上,或者在紧要关头,使用仅限 Chrome 的 sourceId(但这在任何其他浏览器中都不起作用)。 navigator.mediaDevices.enumerateDevices() 是异步的。它返回一个承诺(想想回调,但更奇特)。 您应该从那里触发对 getUserMedia 的调用,或者等待 DOMContentLoaded 和 enumerateDevices,然后执行 getUserMedia。 我没有任何答案 我的开发者帐户无法连接我所有的电子邮件,即使是在 Google 之外发送的电子邮件 我的手机 我的电视 我的电脑 我妈妈的手机 她的 Wi-Fi 我丈夫的手机 他妻子的一切都已连接我没有,我对此一无所知,我对手机或电脑一无所知,我没有授权,没有告诉任何人他们可以这样做,有人知道发生了什么事吗???

回答 3 投票 0

Android 的最后一个预编译库 org.webrtc:google-webrtc:1.0 在哪里?

我调查了主要来源 JCenter 已关闭:JCenter 曾经托管过一些 WebRTC 版本,但是 现在已经关闭了。 Maven Central:Maven Central 不托管 org.webrtc:google-webrtc lib...

回答 1 投票 0

成功获取本地流WebRTC后视频元素没有显示

目前,我正在创建一个P2P视频通话应用程序。我希望当我单击打开相机时,相机将被打开,媒体流将被馈送到我的视频标签。这是代码,...

回答 2 投票 0

peerConnection.onicecandidate 回调未被调用(webRTC、Angular)

我是一个初学者,试图将 webRTC 视频通话应用程序作为一个项目制作(我设法让它与 websockets 一起工作,但在慢速互联网上会冻结)。我使用 Angular 来实现 FE,使用 Go 来实现 BE。我有一个...

回答 1 投票 0

文件包含损坏的数据 - 包管理器控制台

我正在尝试关注这篇文章。有一个步骤说你需要通过包管理器控制台(PMC)安装 XSockets.Sample.WebRTC,这就是我陷入困境的地方。 我收到一个错误...

回答 9 投票 0

用于 webrtc 头文件的 Java jextract

我正在尝试设置访问权限以使用 WebRTC lib 绑定或使用 JExtract,但每当我在 webrtc/src/api/ files 文件夹上运行该工具时,都会收到错误。是的,我已经完成了 cle.ex 的所有要点...

回答 1 投票 0

添加曲目之前如何检查曲目是否已添加到 WebRTC 对等连接?

我正在开发一个WebRTC应用程序,在获得麦克风权限后,我将音轨动态添加到peerConnection。我想避免添加重复的曲目以防止不必要的

回答 1 投票 0

HTML 音频元素 currentTime 属性在移动设备和 Safari 上太高

我正在开发一个使用 VoIP 的网站。我正在使用线路另一端用户的 MediaStream 设置音频元素的 srcObj 属性(使用 PeerJS)。我还显示了时间...

回答 1 投票 0

使用WebRTC进行Flutter直播

我需要在iOS和Android上使用flutter做一个直播应用程序。 广播时,广播者和观众都可以录制视频(最多 500 个)。 我做了一些研究并且...

回答 1 投票 0

如何在不使用HTTPS的情况下访问Chrome中的摄像头和麦克风?

当网站是http时,有没有办法使用chrome访问麦克风和摄像头? 我尝试启用“不安全来源视为安全”标志,但是当浏览器关闭并打开时

回答 2 投票 0

为什么WebAudio的增益节点只有一个输入却可以混合多个输入?

我试图找到一种将音频流与 WebAudio 混合并使用 MediaRecorder 进行录制的方法。我一直在遵循此处概述的方法: 录制流中可用的多个音轨...

回答 1 投票 0

如何实现“谁在说话?” webrtc ios 应用程序中的功能?

我正在使用 webRTC 创建一个用于视频会议的 ios 应用程序。我想检测谁在对等连接中说话。 更具体地说,我想检测遥控器的音频活动...

回答 3 投票 0

WebRTC:定期断开连接

我构建了一个类似不和谐的应用程序,多个人可以加入一个频道,互相交谈并共享他们的屏幕。它不是点对点的,因为有一个媒体服务器中继所有媒体

回答 1 投票 0

如何将 Azure Speech SDK AudioConfig 限制为仅系统音频并排除麦克风输入?

问题: 我正在开发一个 Blazor 项目,其中集成了 Azure 语音服务,以便在屏幕共享期间对系统音频执行语音到文本转录。但是,我面临一个问题......

回答 1 投票 0

将ice-candidates添加到webrtc-connection的顺序

RTCPeerConnection.addIceCandidate() 的 MDN 文档表示它返回一个承诺。 因此,当该方法返回时,候选冰可能正在被处理。 我得到了一些冰念珠菌...

回答 1 投票 0

视频媒体设备将 Blob 分配给“videoRef.srcObject”代替“src”

我正在尝试将一个blob作为视频元素的src。我的代码在以下情况下工作正常: videoRef.src = URL.createObjectURL(blob) 但不推荐使用“src”和“URL.createObjectURL”来代替 u...

回答 4 投票 0

C# 中的 WebRTC STUN 和 TURN 服务器

我今天的问题是如何在c#中为webrtc点对点应用程序开发stun和turn服务器是否有任何库支持这个,我找不到任何示例或资源来获得这个。 请...

回答 2 投票 0

如何在捕获屏幕和系统音频时排除麦克风音频?

说明: 我正在开展一个项目,我需要: 捕获屏幕内容以及系统音频(例如 YouTube、 视频等)。 从捕获的流中排除麦克风音频。 可选...

回答 1 投票 0

如何使用 JavaScript 捕获屏幕和系统音频时排除麦克风音频?

说明: 我正在开展一个项目,我需要: 捕获屏幕内容以及系统音频(例如 YouTube、 视频等)。 从捕获的流中排除麦克风音频。 可选...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.