delphi 控制摄像头 无驱摄像头视频显示区黑屏无显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 控制摄像头 无驱摄像头视频显示区黑屏无显示相关的知识,希望对你有一定的参考价值。

我用网上流传的用delphi 控制摄像头做了试验,对有驱动的摄像头能正常显示视频,但对无驱动的摄像头却视频显示区黑屏无显示,请问各位高手,帮我看看是怎么回事,谢谢了。
以下是代码:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, SUIImagePanel, DB, ADODB, DBCtrls,
SUIDBCtrls;

type
TForm1 = class(TForm)
Button2: TButton;
Button3: TButton;
Button1: TButton;
Image1: TImage;
Image2: TImage;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Private declarations
public
Public declarations
end;

var
Form1: TForm1;
hWndC : THandle;

implementation

$R *.dfm

const WM_CAP_START = WM_USER;
const WM_CAP_STOP = WM_CAP_START + 68;
const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
const WM_CAP_SAVEDIB = WM_CAP_START + 25;
const WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
const WM_CAP_SEQUENCE = WM_CAP_START + 62;
const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;
const WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63;
const WM_CAP_SET_OVERLAY =WM_CAP_START+ 51;
const WM_CAP_SET_PREVIEW =WM_CAP_START+ 50;
const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6;
const WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2;
const WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3;
const WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5;
const WM_CAP_SET_SCALE=WM_CAP_START+ 53;
const WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52;

function capCreateCaptureWindowA(lpszWindowName : PCHAR; dwStyle : longint; x : integer;
y : integer;nWidth : integer;nHeight : integer;ParentWin : HWND;
nId : integer): HWND;Stdcall;external 'AVICAP32.DLL';

procedure TForm1.Button2Click(Sender: TObject); //开始捕捉视频
begin
hWndC := capCreateCaptureWindowA('My Own Capture Window',WS_CHILD or WS_VISIBLE ,image1.Left,image1.Top,image1.Width,image1.Height,Form1.Handle,0);

if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
end;
end;

同意楼上的观点。
而且你这个vfw的 摄像头编程 效率很差

还是改用directShow吧。
参考技术A 试问,没有驱动,你哪样硬件能运行起来??? 参考技术B 还是换一个有驱动的吧!我以前也买个无驱动的,不行呀!就换个有驱动!

苹果电脑摄像头黑屏 苹果电脑摄像头不能用了怎么办

参考技术A 1、查看苹果电脑摄像头处是否有东西挡着。

2、回到主屏幕,点击屏幕上的调控点,选择设备,点击更多,选择多任务。将所有运行的程序往上划一下,都关掉,再回到主屏幕,打开摄像机。

3、关机重启苹果电脑后查看是否正常,如无改善,可联系苹果电脑售后查看核实。

4、尝试按住SHIFT+CONTROL+OPTION+开机键重置SMC,按住4、5秒,松手后等待30秒以上再次开机尝试。如果不行,可以再次尝试开机之后,迅速按住COMMAND+OPTION+P+R键不松手,等到出现4次开机声音后松手,尝试进入。

以上是关于delphi 控制摄像头 无驱摄像头视频显示区黑屏无显示的主要内容,如果未能解决你的问题,请参考以下文章

由DELPHI控制摄像头的问题

opencv不能打开USB摄像头问题

如何调节摄像头参数?

苹果电脑摄像头黑屏应该怎么处理?

如何控制用Delphi摄像头

苹果笔记本摄像头灯亮,却没有显示?