全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1232
推到 Plurk!
推到 Facebook!

第一次開啟device disconnect 後就不能在connect device 的問題

答題得分者是:taishyang
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-28 15:54:28 IP:211.22.xxx.xxx 未訂閱
請問一下大大們 為何我第一次connect device 可以看到影像 但我disconnect 後 要重新connect device 它就會出現....Can not connect device !1 請問大大是那裡的問題呢? 謝謝!! void __fastcall TForm1::BitBtn1Click(TObject *Sender) { //開啟裝置按下 if(BitBtn1->Caption == "Connect"){ if (!VideoWnd) OpenVideoWindow(); }else{ if (VideoWnd) CloseVideoWindow(); } } //--------------------------------------------------------------------------- bool __fastcall TForm1::OpenVideoWindow(void) { //TODO: Add your source code here // CAPINFOCHUNK InfoChunk; VideoWnd = capCreateCaptureWindow("VideoWindow",WS_CHILD | WS_VISIBLE,0,0,640,480,Panel1->Handle,(int) 0); if(!OpenDevice()) { DestroyWindow(VideoWnd); VideoWnd=NULL; return false; } } //--------------------------------------------------------------------------- bool __fastcall TForm1::OpenDevice(void) { //TODO: Add your source code here if (capDriverConnect(VideoWnd,1)) { capPreviewScale(VideoWnd,true); capOverlay(VideoWnd,TRUE); capPreviewRate(VideoWnd,1000/30); capPreview(VideoWnd,TRUE); BitBtn2->Enabled = true; BitBtn3->Enabled = true; BitBtn1->Caption = "DisConnect"; return true; }else{ ShowMessage("Can not connect device !!"); BitBtn1->Caption = "Connect"; return false; } } //--------------------------------------------------------------------------- bool __fastcall TForm1::CloseVideoWindow(void) { //TODO: Add your source code here if (bDeviceConnected) CloseDevice(); DestroyWindow(VideoWnd); VideoWnd = NULL; BitBtn1->Caption = "Connect"; BitBtn2->Enabled = false; BitBtn3->Enabled = false; return true; } //--------------------------------------------------------------------------- bool __fastcall TForm1::CloseDevice(void) { //TODO: Add your source code here if (capDriverDisconnect(VideoWnd)) { bDeviceConnected=false; return true; }else{ ShowMessage("Can not disconnect device !!"); BitBtn1->Caption = "DisConnect"; return false; } }
KGB
一般會員


發表:6
回覆:7
積分:2
註冊:2003-07-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-28 18:58:24 IP:211.76.xxx.xxx 未訂閱
引言: //------------------------------------------------------------------- bool __fastcall TForm1::OpenDevice(void) { //TODO: Add your source code here if (capDriverConnect(VideoWnd,1)) .....................................^^^ { capPreviewScale(VideoWnd,true); capOverlay(VideoWnd,TRUE); capPreviewRate(VideoWnd,1000/30); capPreview(VideoWnd,TRUE); BitBtn2->Enabled = true; BitBtn3->Enabled = true; BitBtn1->Caption = "DisConnect"; return true; }else{ ShowMessage("Can not connect device !!"); BitBtn1->Caption = "Connect"; return false; } }
wzl您好: if (capDriverConnect(VideoWnd,1)) .............................^^^ 我測過你的程式碼,把這裡的1 改成 0 就OK了 ==> if (capDriverConnect(VideoWnd,0)) 發表人 - KGB 於 2003/07/28 18:59:47 發表人 - KGB 於 2003/07/28 19:00:55
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-28 19:13:54 IP:61.228.xxx.xxx 未訂閱
KGB 大大謝謝 我試試看...
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-28 20:32:12 IP:140.135.xxx.xxx 未訂閱
wzl您好: 您可以參考下面連結加入下面的判斷機制 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34539
 
bool connect = false;
for( int i = 0; i < 10; i   )
{
 connect = capDriverConnect(VideoWnd,i);
 if(connect) break;
}
if(!connect)
{
 ShowMessage("攝影機連接失敗");
}
順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-29 09:47:17 IP:211.22.xxx.xxx 未訂閱
KGB 大大... 我修改成if (capDriverConnect(VideoWnd,0)) 連第一次都會無法CONNECT 一定要用capDriverConnect(VideoWnd,1)才可以正常連接且看到影像 請問...是為何呢? 要如何修改呢?
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-07-29 10:11:58 IP:211.22.xxx.xxx 未訂閱
taishyang大大 用for loop 試connect 也加入了.. 但是一開始第一次connect 沒問題 第二次進for loop 確全部都連接失敗 這是為何呢? 我已經有capDriverDisconnect(VideoWmd) 跟DestroyWindows(VideoWnd) 為何第二次無法建立Connect 呢? 請大大解惑謝謝!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-07-29 14:26:34 IP:140.135.xxx.xxx 未訂閱
wzl您好:     把DestroyWindows(VideoWnd)拿掉試試    順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-29 14:49:06 IP:211.22.xxx.xxx 未訂閱
大大... 我只要一用下面這兩行其中一行 capDriverDisconnect(VideoWmd) DestroyWindows(VideoWnd) 便無法再連接上device 但是要是不用這兩行就無法將device 的畫面停止...(會存在) 請問大大這是什問題呀?
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-29 15:39:59 IP:140.135.xxx.xxx 未訂閱
wzl您好:    下面是我測試的程式,我測試可行(BCB5.0 WinXP)
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{     int i=Edit1->Text.ToInt();  //依您的其況,i=1;
 vcHWND = capCreateCaptureWindow ( "Capture Window",
 WS_CHILD | WS_VISIBLE ,0,0,160,120,((TPanel*)FindComponent("Panel" IntToStr(i)))->Handle, 0);  //設定視窗大小
 capDriverConnect( vcHWND,Edit1->Text.ToInt());
 capPreviewRate(vcHWND,33);
 capPreview(vcHWND,true);                                       //預覽設定
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 capDriverDisconnect(vcHWND);        
}
//---------------------------------------------------------------------------
可以連線,斷線切換 順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~ 發表人 -
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-07-29 22:45:33 IP:61.228.xxx.xxx 未訂閱
taishyang大大 我已把我測試用的code 傳給您 請問您有收到嗎? 謝謝!~!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-07-29 22:57:57 IP:140.135.xxx.xxx 未訂閱
wzl您好:   我沒有收到耶,有問題的專案可以上傳到下面連結的地方   http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97 您的問題在哪邊呢?上面的方式還是不可以嗎?< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-07-30 12:13:51 IP:211.22.xxx.xxx 未訂閱
taishyang大大 我已經檔案上傳 煩請幫忙謝謝!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-07-30 14:36:54 IP:140.135.xxx.xxx 未訂閱
wzl您好:      您的程式在我的電腦都可以WORK耶 BCB5.0 WinXP   不論是[CCD攝影機+影像擷取卡]或是[USB攝影機]都可以正常連線和離線    順心 <>~我也是在學習的階段,回答的不好請您多多見諒與指教~
wzl
一般會員


發表:14
回覆:31
積分:9
註冊:2003-02-12

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-07-30 14:45:05 IP:211.22.xxx.xxx 未訂閱
taishyang大大 我這個程式用亞邁的DV PRO 可以正常沒問題 現在我用的是另一塊影像擷取卡 Mutech MV500 Http://www.mutech.com/ 可是這塊卡就不可以 請問taishyang大大您那邊可推薦幾塊可以顯示640 x480的擷取卡(非補插點黑白) 謝謝大大... 我很好奇為何用標準win32 api 確不能夠跑那張Mutech 的卡呢? 請大大解惑!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#15 引用回覆 回覆 發表時間:2003-07-30 15:02:06 IP:140.135.xxx.xxx 未訂閱
wzl您好:
引言: 我這個程式用亞邁的DV PRO 可以正常沒問題現在我用的是另一塊影像擷取卡 Mutech MV500Http://www.mutech.com/可是這塊卡就不可以請問taishyang大大您那邊可推薦幾塊可以顯示640 x480的擷取卡(非補插點黑白) 謝謝大大...我很好奇為何用標準win32 api 確不能夠跑那張Mutech 的卡呢? 請大大解惑!!
我只有一張影像擷取卡(UPG301T), 而且覺得不是很好用< > 我沒有其他的影像擷取卡,所以不曉得還有這樣的情況< > 抱歉,幫不上忙了~~ P.S:我沒有那麼厲害可以被稱為[大大],我只是個熱心助人的版主< > 順心< > ~我也是在學習的階段,回答的不好請您多多見諒與指教~
系統時間:2024-05-05 16:36:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!