我的网络摄像头在某些应用程序中可以使用,但在其他应用程序中却无法使用。例如,它在 skype 和 guvcview 中可以使用,但在 cheese 中却无法使用(cheese 已重新安装,但无效)。
>lsusb
Bus 001 Device 002: ID 0806:0806 SJ-181217-N 1080P Webcam
>hwinfo --usb
07: USB 00.2: 0000 Unclassified device
[Created at usb.122]
Unique ID: RUmI.YLn6RqfXaa3
Parent ID: k4bc.2DFUsyrieMD
SysFS ID: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.2
SysFS BusID: 1-7:1.2
Hardware Class: unknown
Model: "SJ-181217-N 1080P Webcam"
Hotplug: USB
Vendor: usb 0x0806 "SJ-181217-N"
Device: usb 0x0806 "1080P Webcam"
Revision: "12.17"
Driver: "snd-usb-audio"
Driver Modules: "snd_usb_audio"
Speed: 480 Mbps
Module Alias: "usb:v0806p0806d1217dcEFdsc02dp01ic01isc01ip00in02"
Driver Info #0:
Driver Status: snd_usb_audio is active
Driver Activation Cmd: "modprobe snd_usb_audio"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #9 (Hub)
更糟糕的是,在 Chrome 中,它在某些网站上可以运行,但在其他网站上却不行。我不知道这是同一个问题还是另一个问题。它在 meet.google.com 和 hangouts.google.com 以及一些网络摄像头测试中可以运行,但在任何 javascript 网络摄像头教程(我们使用<video>
和)中都行不通navigator.mediaDevices.getUserMedia(..)
。
如果我谷歌搜索webcam test
,并关注以下结果:
- https://www.onlinemictest.com/webcam-test/- 作品;
- https://webcamtests.com/- 不起作用;
- https://www.vidyard.com/cam-test/- 作品;
- https://webcammictest.com/- 不起作用;
- https://www.iobit.com/en/webcam-test.php- 作品;
- https://www.hotcleaner.com/webcam-test/- 不起作用;
- https://www.drift.com/video/camera-test/- 不起作用;
Chrome devtools 什么也没说。
更新:出现了一个非常奇怪的行为:如果我访问任何工作网站,例如https://www.onlinemictest.com/webcam-test/并开始测试,然后在另一个选项卡中打开不工作的网站,它也开始工作。似乎工作的网站做了一些打开摄像头的事情,之后它到处都可以工作。如果我关闭第一个选项卡并刷新第二个选项卡,我只会看到黑屏。
答案1
好的,转到 chrome://settings/content/camera?search=camera 并检查您提到的网站是处于允许状态还是阻止状态。尝试启用或禁用“访问前询问”。此外,尝试https://storyxpress.co/webcam-test网络摄像头测试工具可检测您的摄像头是否能在这里工作。
答案2
网络摄像头通常会向系统提供一些有关宽度/高度/分辨率的隐藏数据。可能对于我的网络摄像头型号,缺少这些数据。我最终通过在调用中手动指定宽度和高度解决了这个问题getUserMedia
。我猜,上面所有正常工作的网络摄像头测试都设置了这些选项,而所有不正常工作的测试都没有设置这些选项。
这是工作代码: https://codepen.io/kasheftin/pen/YzwdmYV
PS 我猜 cheese 也试图从相机设置中获取宽度/高度,并且没有回退(默认值)。