線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1402
推到 Plurk!
推到 Facebook!

vfw錄影,按滑鼠鍵就停止的問題

缺席
BCBNPC
一般會員


發表:14
回覆:15
積分:5
註冊:2008-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-17 10:25:33 IP:61.224.xxx.xxx 訂閱
大家好:
最近我用vfw進行錄影

當我按下錄影鈕時,的確是開始錄影了,不過滑鼠會變成漏斗狀
我試著去等,一直都是漏斗狀,滑鼠移動也是一樣
直到我按下滑鼠鍵,過個2秒才會跳回指針狀
不過錄影也因此而停止了,不是預設"ESC"鍵停止嗎?
當然,我按下滑鼠左鍵時,是在程式表單的空白處,並非按在停止鈕上。
這個現象我搜尋了一些資訊,似乎沒有提到跟我一樣的問題
我在家、公司的電腦都有一樣的問題。

我提供一些我的環境供各位參考:
[公司]
OS:Windows XP sp2
RAM:512MB
tool:BCB 6
[家裡]
OS:Windows XP sp2
RAM:2GB
tool:BCB 6

使用的webcam是我老爸好幾年前朋友送給他
他再給我的...不知名的品牌(有附驅動光碟,安裝無問題)

我知道的是:vfw支援到640*480、30萬畫素

以下是我的程式碼,請大家協助:

[code cpp]

使用標頭檔:vfw.h
全域變數 HWND hCapWnd;

void __fastcall TForm1::btnOpenCameraClick(TObject *Sender) //打開鏡頭的按鈕
{
OpenVideoDevice(); //呼叫打開鏡頭的函式
}

void __fastcall TForm1::btnVideoRecClick(TObject *Sender) //錄影鈕
{
VideoRecStart(); //呼叫開始錄影 存檔的函式
}

void __fastcall TForm1::btnVideoStopClick(TObject *Sender) //停止錄影鈕
{
capDriverDisconnect(hCapWnd); //與鏡頭斷線
}

void TForm1::OpenVideoDevice() //打開鏡頭的函式
{
hCapWnd = capCreateCaptureWindow (
"Capture Window", // handle of window
WS_CHILD | WS_VISIBLE ,
0,
0,
640,
480,
Panel1->Handle,
0);

bool ScanVideoDevice = false;
for(int scan = 0; scan<5; scan )
{ //搜尋裝置
ScanVideoDevice = capDriverConnect(hCapWnd,scan);
if(ScanVideoDevice)
{
break;
}
}

if(!ScanVideoDevice) //沒錄影裝置
{
ShowMessage("搜尋不到錄影機裝置");
}
else //有錄影裝置
{
capPreviewRate(hCapWnd,1000/30);//每一秒影像變化張數,數值越大,速度會越慢
capPreview(hCapWnd,true);//影像出現在視窗中

capOverlay(hCapWnd,true);//影像直接傳入電腦,不需要通過cpu的暫存器
capPreviewScale(hCapWnd,true);//影像延伸到所設定的視窗大小
}
}

void TForm1::VideoRecStart() //開始錄影 存檔的函式
{
String VideoFileName = ExtractFilePath(Application->ExeName) "test.avi";
capFileSetCaptureFile(hCapWnd,VideoFileName.c_str());

capCaptureSequence(hCapWnd); //若無上述函數,將在c:\產生capture.avi
}
[/code]

OK...我搞定這個問題了,結案嚕...!煩請版大刪除,感謝。
編輯記錄
BCBNPC 重新編輯於 2008-12-19 15:13:38, 註解 無‧
系統時間:2024-04-25 16:13:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!