荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: scanf (carefully), 信区: Visual
标  题: [zz]视频扑获笔记(六)
发信站: 荔园晨风BBS站 (Mon Oct 27 21:57:24 2003), 站内信件

六.将四个标准对话框改成函数调用形式

系统提供了四个标准的对话框:AudioFormat, VideoFormat, VideoSource, Video
 Compression,但有时程序希望通过函数控制它们,而不是使用系统提供的那个单
一的对话框,此时就应该使用函数调用的方法:

AudioFormat对话框
可以通过使用capSetAudioFormat来实现,此时要使用WAVEFORMATEX结构。
例如:改成PCM格式,立体声,16声道,12.05kHz,则:
WAVEFORMATEX audioFormat;
// 确定宽度
acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT,&dwSize);
dwSize = max (dwSize, capGetAudioFormatSize (m_hwCapCapturing));
// 设置参数
audioFormat.wFormatTag = WAVE_FORMAT_PCM;
audioFormat.nChannels = 2;
audioFormat.nSamplesPerSec = 120500;
audioFormat.wBitsPerSample =16;
audioFormat.nBlockAlign = nBitsPerSample * nChannels / 8;
audioFormat.nAvgBytesPerSec =
audioFormat.nBlockAlign * nSamplesPerSec;
// 更新
capSetAudioFormat(ghCapWnd,&audioFormat,dwSize);
VideoFormat对话框
可以通过使用capSetVideoFormat来实现,此时要使用BITMAPINFOHEADER结构。
例如:设置图片大小为RGB24位岁,大小为230X160
BITMAPINFOHEADER bi;
DWORD dwSize,dw;
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biWidth = 320; // 起作用
bi.biHeight = 160; // 起作用
bi.biPlanes = 1;
bi.biBitCount = 24;
bi.biCompression = BI_RGB;
bi.biSizeImage = 0;
bi.biXPelsPerMeter = 176;
bi.biYPelsPerMeter = 144;
bi.biClrUsed = 0;
bi.biClrImportant = 0;
dwSize = bi.biSize + ((bi.biBitCount > 8 || bi.biClrUsed) ? (bi.
biClrUsed * sizeof(PALETTEENTRY)) : (2 ^ bi.biBitCount *
sizeof(PALETTEENTRY)));
dw = capSetVideoFormat(m_hwCapCapturing, &bi, dwSize);
VideoSource对话框
没有找到现成的方法,但视频捕获卡提供的CD里面有一个动态链接库可以实现。

Video Compression对话框
可以通过使用ICOpen,ICInfo等函数联合起来,得到当前系统里面的视频压缩驱动
的列表,并可选择其一,MSDN里面有一个程序示范了此用户,程序名叫:
ICWalk。

注:此文绝大部分是我译自MSDN的资料。





--

→我:(打劫内裤,快脱,不然,老子毙了你!)
看  ●    ○   ╮╮     看
↓  █┳  ┗█┛  \█/ 我倒!~~↓
面  ┏┓   ┛┗   ●     面
→你:(大哥,我今天没穿啊,不要~不要啊!)

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.36.110]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店