作者:穿过a黑夜_440 | 来源:互联网 | 2023-05-21 00:18
我需要为我的ruby on rails应用程序构建一个视频会议功能.我找到了html5的教程,使您可以通过浏览器访问您的相机.打开相机后,您可以看到实时摄像机进纸并拍摄快照.代码如下
Javascript代码:
// Put event listeners into place
window.addEventListener("DOMContentLoaded", function() {
// Grab elements, create settings, etc.
var canvas = document.getElementById("canvas"),
cOntext= canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function(error) {
console.log("Video capture error: ", error.code);
};
// 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);
}
// Trigger photo take
document.getElementById("snap").addEventListener("click", function(e) {
context.drawImage(video, 0, 0, 640, 480);
});
}, false);
HTML代码:
New video
我需要一种方法来流式传输我看到的服务器中的其他用户的实时视频.我怎么能这样做?网络套接字能让我这样做吗?如果是这样的话?
1> igorpavlov..:
你绝对可以做到.
首先,您需要了解WebRTC的工作原理以及它的要求.您需要一个信令服务器(现有服务器,或者您自己编写).如果您决定自己编写,则需要任何类型的客户端 - 服务器 - 客户端体系结构和传输方法(其中之一是websockets).
在websockets(或任何其他传输)上,您需要交换会话描述(一个对等提供,其他对等应答)以建立连接.实际上,信令服务器只是客户端和服务器端的几个监听器,它们只能在建立WebRTC连接之前将信号(相对较小的文本数据块)从一个对等体传递到另一个对等体.
合适的方式
我建议调查这个应用程序的主要代码https://apprtc.appspot.com/(我在这里保存了主要代码https://gist.github.com/igorpavlov/18af35999f8c7838cf21).了解它的工作原理对你来说非常好.
简单的方法
您也可以使用库来调用https://simplewebrtc.com/(www.talky.io适用于此库),但您仍需要信号服务器.
祝好运!
推荐阅读
-
本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ...
[详细]
蜡笔小新 2024-11-12 16:10:39
-
如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ...
[详细]
蜡笔小新 2024-11-13 16:47:19
-
-
本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ...
[详细]
蜡笔小新 2024-11-12 13:35:26
-
Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ...
[详细]
蜡笔小新 2024-11-09 21:38:05
-
本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ...
[详细]
蜡笔小新 2024-11-09 18:14:37
-
本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ...
[详细]
蜡笔小新 2024-11-13 18:47:34
-
本文详细介绍了 Pentaho Kettle 中 RowMetaInterface.writeMeta 方法的使用,并提供了多个代码示例,帮助开发者更好地理解和应用该方法。 ...
[详细]
蜡笔小新 2024-11-13 16:21:25
-
一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ...
[详细]
蜡笔小新 2024-11-13 15:49:49
-
本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ...
[详细]
蜡笔小新 2024-11-13 12:05:24
-
com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ...
[详细]
蜡笔小新 2024-11-13 10:47:33
-
零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ...
[详细]
蜡笔小新 2024-11-13 02:03:52
-
createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ...
[详细]
蜡笔小新 2024-11-12 19:26:15
-
开发日志:高效图片压缩与上传技术解析 ...
[详细]
蜡笔小新 2024-11-11 19:33:51
-
本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ...
[详细]
蜡笔小新 2024-11-10 15:44:03
-
在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ...
[详细]
蜡笔小新 2024-11-09 14:59:47
-