我碰壁了:/...我正在尝试从网络摄像头获取预览并拍摄快照(我仍然没有做到那么远...),我现在被困在现场直播到winform...我没有不想使用一些未知的库或不允许用于商业用途的库。无论如何,现在我用 MS Expression Encoder 进行实验,但我无法添加源设备,什么时候应该执行 LiveJob.AddDeviceSource 应用程序在没有任何 f***!@^%# 错误的情况下被杀死;(...有我的代码:
private void startLivePreview()
{
try
{
// find audio devs
var a_Devices = EncoderDevices.FindDevices(EncoderDeviceType.Audio);
if (a_Devices.Count < 1)
{
throw new Exception("No avaiable audio devices. Sorry but there must be at least one...");
}
EncoderDevice a_Dev = a_Devices[1];
//camLiveSource = camLiveJob.AddDeviceSource(camDevice, null); // I do not need audio so null it...
camLiveSource = camLiveJob.AddDeviceSource(camDevice, a_Dev); // this line kills the app
camLiveSource.PickBestVideoFormat(new Size(640, 480), 15);
camLiveJob.OutputFormat.VideoProfile.Size = new Size(imgPrev.Size.Width, imgPrev.Size.Height);
SourceProperties sp = camLiveSource.SourcePropertiesSnapshot();
lblInfoPrev.Text = sp.Size.Width.ToString() + "x" + sp.Size.Height.ToString() + " @ " + sp.FrameRate.ToString("0.00") + "fps";
camLiveSource.PreviewWindow = new PreviewWindow(new HandleRef(imgPrev, imgPrev.Handle));
camLiveJob.ActivateSource(camLiveSource);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}
没什么大不了的,就像可以在互联网上找到的所有示例一样……任何人都可以提供帮助吗?我认为 MS 库可以正常工作,但它们不能(甚至 LiveSourceSample 也不起作用,应用程序在同一行被杀死)......
我想使用一些东西来从网络摄像头中抓取可用于商业应用程序的图片。而且我根本不需要音频(如果我可以在 AddDeviceSource 中将“null”作为音频设备传递,我会很高兴:))
这些是我在系统上的 AV 设备:
Video devices:
- [0] Name: >Screen Capture Source< *- this must been installed with MS Expression Encoder 4*
- [1] Name: >WebCam SC-03FFL11939N< *- built-in laptop camera*
Audio devices devices:
- [0] Name: >Microphone (Realtek High Definition Audio)<
- [1] Name: >Mix stereo (Realtek High Definition Audio)<
- [2] Name: >Speakers (Realtek High Definition Audio)<