- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想使用 HTML5 和 jQuery 制作一个简单的网络摄像头查看器。我为此找到了一些代码,如下所示
<script src="RecordRTC.js"></script>
div>
<video id="client-video" autoplay loop controls muted></video>
<button id="record-video">Record Video</button>
</div>
<script>
var video = document.getElementById('client-video');
var videoConstraints = {
audio: false,
video: {
mandatory: {},
optional: []
}
};
var videoStream;
</script>
<script>
function getByID(id)
{
return document.getElementById(id);
}
var recordVideo = getByID('record-video');
var recorder;
recordVideo.onclick = function ()
{
if (!videoStream) navigator.webkitGetUserMedia(videoConstraints, function (stream)
{
video.src = window.webkitURL.createObjectURL(stream);
videoStream = stream;
recorder = RecordRTC({
video: video
});
recorder.recordVideo();
});
else
{
video.src = window.webkitURL.createObjectURL(videoStream);
recorder.recordVideo();
}
window.isAudio = false;
this.disabled = true;
stopRecordingVideo.disabled = false;
};
</script>
function RecordRTC(config)
{
var win = window,
requestAnimationFrame = win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame,
cancelAnimationFrame = win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame,
URL = win.URL || win.webkitURL,
canvas = document.createElement('canvas'),
context = canvas.getContext('2d'),
video = config.video;
if (video)
{
video.width = canvas.width = 320;
video.height = canvas.height = 240;
}
var requestedAnimationFrame, frames = [];
function recordVideo()
{
if (!video)
{
alert('No video element found.');
return;
}
console.log('started recording video frames');
var height = canvas.height,
width = canvas.width;
frames = [];
function drawVideoFrame()
{
requestedAnimationFrame = requestAnimationFrame(drawVideoFrame);
context.drawImage(video, 0, 0, width, height);
frames.push(canvas.toDataURL('image/webp', 1));
}
requestedAnimationFrame = requestAnimationFrame(drawVideoFrame);
}
var blobURL, blobURL2, fileType;
function setBlob(blob, callback)
{
blobURL = blob;
var config = {
blob: blobURL,
type: fileType === 'webm' ? 'video/webm' : 'audio/wav',
fileName: (Math.random() * 1000 << 1000) + '.' + fileType,
size: blobURL.length,
onsuccess: function (fileEntry)
{
console.log(fileEntry);
fileSystemURL = fileEntry.toURL();
if (callback)
{
callback(fileSystemURL);
}
},
onerror: function (errorMessage)
{
console.debug('Unabled to write temporary recorded file using FileWriter APIs.');
var url = writer.toURL();
if (url)
{
return window.open(url);
}
else
{
console.debug('Unabled to write temporary recorded file using FileWriter APIs.');
if (callback)
callback(blobURL2);
}
}
};
}
return {
recordVideo: recordVideo,
getBlob: function () {
return blobURL2;
}
};
}
此代码正常工作并显示单个网络摄像头 View ,但我想在同一页面中显示两个网络摄像头 View ,我如何才能在我的网页上显示第二个网络摄像头。我是 HTML5 和 JQuery 的新手。请帮助我。提前致谢
最佳答案
因为您使用的是 RecordRTC.js,我假设您的目标浏览器是 Google Chrome,因为它是 only supported browser此时。
不幸的是,支持此功能的浏览器(例如 Google Chrome)仅支持一个网络摄像头,事实证明您必须在 chrome://settings/content 的内容设置下指定您想要使用的摄像头
如果您想组装一个监控多个摄像头的安全摄像头系统供您自己使用,则需要设置某种服务器(即在浏览器外部)来捕获每个摄像头的视频流。广播后,您可以使用 video
元素构建包含每个视频流的网页。
如果您想要创建一个页面,让拥有多个网络摄像头的网络用户可以创建他们自己的类似多摄像头 View ,您可能需要使用不同的技术,例如浏览器插件或 Flash。
关于jquery - 在 HTML5 和 jQuery 中访问两个不同的网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16140221/
避免必须自己创建整个相机应用程序,我调用: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); this.startActivit
我使用这种方法从前置摄像头录制视频: Recording video via Mediarecorder 它在我的 Nexus 4 上运行良好,但有人说有很多手机的前置摄像头无法录制视频,只能拍照。我
我正在使用 Android 手机的摄像头作为输入来测试成像算法,并且需要一种方法来始终如一地测试算法。理想情况下,我想获取预先录制的视频源并让手机“假装”视频源是来自相机的实时视频。 我理想的解决方案
我想在 android 上通过 v4l 访问外部 USB 摄像头。 我试过了 SimpleWebCam .在对原始源代码进行一些细微修改后,我实现了使其在 Root过的 android 设备上运行。然
我正在尝试连接两个连接到单个 USB 端口的 USB 网络摄像头。问题是当时只有一个摄像头工作...我在 python 中使用 OpenCV。这可能吗?我的目标是将多台相机连接到一台计算机以进行机器视
我想知道如何在 virtualbox 中使用笔记本电脑的内置网络摄像头和 android x86。 我已经尝试启动默认的“相机”应用程序,它告诉我必须配置 SDCard,我在本教程中所做的:SD ca
我在 64 位华硕的 Ubuntu 12.10 上安装了 ARToolKit。安装没有错误,所以我觉得我没问题。但是当我想尝试一个例子时,它找不到相机。如果我在 char *vconf = ""; 没
我想以编程方式移动 webvr 场景中 View 的位置。为此,我使用了position.add 方法。 以下是我如何以编程方式移动相机: 摄像机移至此处: var obj3d = docume
我正在使用 Camera 2 API 将 JPEG 图像保存在磁盘上。我的 Nexus 5X 目前有 3-4 fps,我想将其提高到 20-30。可能吗? 将图像格式更改为 YUV 我设法生成 30
Baby Monitor (http://www.babymonitor3g.com/) 等应用程序可让两台 iOS 设备相互连接。连接后,一台设备可以激活另一台设备上的摄像头、灯光和麦克风,即使该应
我有一个论坛帖子表单,允许发帖人附加录音和/或网络摄像头快照。这两个都是使用 navigator.getUserMedia() 实现的应用程序接口(interface)。对于音频,我建立了 varia
我对 Opencv 和 Python 有疑问。当我尝试从相机中查看帧时,它无法识别 USB 相机,我使用了带有两个 USB 相机的书籍中的标准代码,问题是只有一个相机工作,我不知道。我在 window
我编写了一个程序,基本上使用步进电机 + a4988 驱动程序将托盘放在连接到 Raspberry Pi 的相机下方。代码将托盘带到起始位置,迈出一步,拍照并重复 10 次。然后托盘返回到起始位置。我
我的 uEye 相机遇到了一个问题。使用我的笔记本电脑摄像头(id 0)或 usb 上的网络摄像头(id 1)这条线完美运行: TheVideoCapturer.open(1); (TheVideoC
我是 Android 版 openCV 的新手,我需要一个在后台运行的图像处理应用(检测图像的线条)。 我已经制作了一个应用程序来完成我需要的所有图像处理(使用 jni),但它不能在后台运行并且它使用
我正在尝试使用 OpenCV 从 USB 摄像头捕获视频。 #include #include using namespace std; using namespace cv; int main(
我正在寻找启用和禁用默认 iPhone 相机的方法,例如在特定时间或纬度/经度。有些地方是禁止摄像头的,所以我们可以在到达这样的地方时关闭它,这里只是举个例子。好吧,我认为在 iPhone 中禁用和启
有人有这种“东西”的工作样本吗? 在理论上,以这种方式实现它是个好主意,但我没有看到任何相关的代码 fragment 来说明如何实现它。 我不要花哨的东西,越简单越好。我只想在单独的线程上实现与相机控
我正在开发一个新网站。您可以加入房间通话并进行语音通话,因此可以使用您的网络摄像头,但您也可以共享您的屏幕。 问题是当我将轨道添加到流中时,对等点不再工作......我不知道如何解决这个问题。我还尝试
我需要在 Flutter 中创建一个考试应用程序,我们需要每隔一段时间拍摄用户的照片和视频,而在执行此操作时我们不想显示相机屏幕。 我尝试使用 Flutter 的 Camera 插件,但我无法找到任何
我是一名优秀的程序员,十分优秀!