2007年1月21日 星期日

多媒體遊戲製作_1(連接視訊)

擷取視訊三步驟 :
1.取得視訊裝置驅動器數量及資訊 (○)

#include

if(capGetDriverDescription(dwDriverIndex,
szDriverName,sizeof(szDriverName),szDriverVer,sizeof(szDriverVer)) )

2.建立視訊擷取視窗

在unit.h裡的form1-private中宣告一個新的資料成員
用來記錄視訊擷取視窗的Handle

private:
HWND FVideoCapWinH;

再使用CapCreateCaptureWindow這個函式來建立出視訊擷取視窗

3.連接攝影機

FormCreate裡面
// 創出一個父視窗 讓視訊使用
FCapWinH = capCreateCaptureWindow(
"Test window", WS_CHILD WS_VISIBLE,0, 0,
CapturePanel->Width, CapturePanel->Height,
CapturePanel->Handle, 0);

blConnect = false;
//設定初始沒連線

連線的button中放
if(FCapWinH != 0)
{
blConnect =capDriverConnect(FCapWinH, 0);
}
if(blConnect == true)
{
capPreviewScale(FCapWinH, false);
capPreview(FCapWinH, true);
capPreviewRate(FCapWinH, 30);
}
之後再對PreviewMode跟OverlayMode放入

capPreview(FCapWinH, true);
//較消耗系統資源,因為他是從視訊裝置去得影像資料然後放入系統記憶體內,
再從系統記憶體內顯示影像資料到螢幕上,

capOverlay(FCapWinH, true);
//相較於PreviewMode,OverlayMode的效率較好,

沒有留言: