PROBLEMAS AO CAPTURAR WEBCAM NO WINDOWS 7

Delphi

10/10/2012

Pessoal não sei se alguém já passou por isso, mas, vai ai uma parada sinistra.

Estou desenvolvendo para uma micro empresa um sistema de monitoramento de computadores que captura imagens diretamente da webcam. Estou fazendo uma bateria de testes com ele, e no Windows XP funciona lidamente bem, mas, quando rodo o sistema no windows 7 (que é o system da empresa), não funciona. Ou melhor, funciona capturando somente a primeira foto, depois quando é pra capturar a segunda imagem, é mostranda uma telinha do Windows pedindo pra escolher o dispositivo de vídeo, clico em OK e mesmo assim continua do mesmo jeito até que vc reinicie o pc novamente, para capturar apenas uma (a primeira).


OBS: Isto acontece tanto com o uso daquela famosa função

function capCreateCaptureWindowA(lpszWindowName: pchar; dwStyle: dword; x, y, nWidth, nHeight: word; ParentWin: dword; nId: word): dword; stdcall external 'avicap32.dll';

quanto com o uso dos componentes TCamera e Tscape32 (dentre os que ja testei).

Alguém já teve essa péssima experiência, e poderia me ajudar?

Agradeço demais.

Luiz Eduardo

Luiz Eduardo

Curtidas 0

Respostas

Gilvanio Gonçalves

Gilvanio Gonçalves

10/10/2012

Veja se assim funcina?.


var
HwebCam: HWND;

function capCreateCaptureWindowA(lpszWindowName: pchar; dwStyle: dword; x, y, nWidth, nHeight: word; ParentWin: dword; nId: word): dword; stdcall external 'avicap32.dll';

implementation

Function CapturarWebCam(DestinoCapBMP:string) : Boolean;
const
WM_WEBCAM = $400;
WM_CONECTAR_DRIVER_WEBCAM = WM_WEBCAM + $a;
WM_DESCONECTAR_DRIVER_WEBCAM = WM_WEBCAM + $b;
WM_GUARDAR_CAPTURA = WM_WEBCAM + 25;
WM_FECHAR_WEBCAM = $0010;
begin
if HwebCam = 0 then
begin //WS_CHILD //WS_VISIBLE
HwebCam := capCreateCaptureWindowA('CaptureWindow', $40000000 and $10000000, 0, 0, 0, 0, GetDesktopWindow, 0);
if SendMessage(HwebCam, WM_CONECTAR_DRIVER_WEBCAM, 0, 0) <> 1 then
begin
HwebCam := 0;
Result := False;
end else begin
SendMessage(HwebCam, WM_GUARDAR_CAPTURA, wparam(0), lparam(PChar(DestinoCapBMP)));
SendMessage(HwebCam, WM_FECHAR_WEBCAM, 0, 0);
SendMessage(HwebCam, WM_FECHAR_WEBCAM, 0, 0);
HwebCam := 0;
Result := True;
end;
end else
Result := False;
end;


Procedure Capturar;
Const
Captura = 'C:\Users\Gil\Desktop\WebCam Captura.bmp';
begin
if not CapturarWebCam(Captura) then
MessageBox(0,Pchar('Não foi possivél capturar a webcam'#10''),'Erro',16);
end;


tente ai.
GOSTEI 0
Luiz Eduardo

Luiz Eduardo

10/10/2012

Valeu pela ajuda Gilvanio!

Deu certo.

Por enquanto está funcionando (no quesito de aparecer a janelinha do Windows), entretanto ainda continua capturando só a primeira; mas pelo menos metade do problema aparentemente está resolvido.

Quero compartilhar este link com vcs http://www.orkut.com/Main#CommMsgs?cmm=20052098&tid=2547289880727471094&na=1&npn=1&nid=

TRATE-SE DO MESMO ASSUNTO, MAS NESSE EXEMPLO AÍ FALA-SE TAMBEM NA CAPTURA DE VIDEOS AVI INCLUSIVE TAMBEM TEM O CÓDIGO. VALE A PENA DÁ UMA OLHADA.
GOSTEI 0
Deivison Melo

Deivison Melo

10/10/2012

Experimente utilizar o componente: "Professional Screen Camera Component v.5.2.3.0 " (freeware)

link para download:

http://www.torry.net/vcl/mmedia/video/PSC.v5.2.3.0.zip

Abração!!

Espero ter ajudado!!!

Emanoel Deivison
Recife - PE
GOSTEI 0
Gilvanio Gonçalves

Gilvanio Gonçalves

10/10/2012

Valeu pela ajuda Gilvanio!

Deu certo.

Por enquanto está funcionando (no quesito de aparecer a janelinha do Windows), entretanto ainda continua capturando só a primeira; mas pelo menos metade do problema aparentemente está resolvido.

Quero compartilhar este link com vcs http://www.orkut.com/Main#CommMsgs?cmm=20052098&tid=2547289880727471094&na=1&npn=1&nid=

TRATE-SE DO MESMO ASSUNTO, MAS NESSE EXEMPLO AÍ FALA-SE TAMBEM NA CAPTURA DE VIDEOS AVI INCLUSIVE TAMBEM TEM O CÓDIGO. VALE A PENA DÁ UMA OLHADA.

por estar capturando só a primeira, é devido ter um uma web apenas instalada, ou seja driver video usb, veja neste link
como utilizar mais de uma usb conectado, como usar corretamente a captura de imagens? existe também um modo de gravar
a imgaem capturada e gravar no bco de dados,ok.
Link:http://www.youtube.com/watch?v=J4at7AfR5eo e aula com um Camrada famoso pos Graduado em programação: Prof Neri.
GOSTEI 0
Luiz Eduardo

Luiz Eduardo

10/10/2012

Estou precisando usar este código indicado acima novamente, entretanto, não está aparecendo mais a imagem da Webcam, mas o restante do código funciona perfeitamente.

Alguém sabe informar o que pode ser este problema?
a imagem que gera é uma tela acinzentada rsrs.

Toda ajuda será bem vinda!
GOSTEI 0
Deivison Melo

Deivison Melo

10/10/2012

Testou o componente: "Professional Screen Camera Component v.5.2.3.0 " (freeware)?

link para download:

http://www.torry.net/vcl/mmedia/video/PSC.v5.2.3.0.zip

Abração!!

Espero ter ajudado!!!

Emanoel Deivison
Recife - PE
GOSTEI 0
Luiz Eduardo

Luiz Eduardo

10/10/2012

Não funciona tbm o PSC.

Até no Skype está com este mesmmo problema aqui no meu notbook [url]http://uploaddeimagens.com.br/imagens/skype-jpg--3[/url]. Já fui na casa de um amigo testar na Webcam dele e dá no mesmo tbm.

Por favor, alguém poderia testar o código sugerido acima e experimentar na Cam de vcs? sinceramente acho que é problema no própio sistema operacional Windows ou então do drive da webcam ( uso o que o própio windows istala na formatação e o meu Win ´w atualizado costantemente), tendo em vista que nenhum programa de captura Webcam funciona.

Por favor testem o source acima e vejam com mais clareza o problema ao qual estou me referindo.

OBS: Já testei outros sources tbm contendo essas APIs e componentes como TCamera, PSC (Professional Screen Camera), Tscap32 e não obtive êxito, e assim, persistindo este mesmo problema de tela acinzentada.

Aguardo mais sugestões de ajuda! :D
GOSTEI 0
Alan Campos

Alan Campos

10/10/2012

Pessoal,

Conseguiram resolver essse problema ? Pois estou com o mesmo problema, já tentei usar o componente do Jedi, TVideoCap e com todos só funciona na primeira captura, depois aparece a tela do drive. Estou usando o delphi 2007 no windows 7 e 8.

Obrigado.
Alan Campos
GOSTEI 0
POSTAR