我正在.NET Framework 4.0中开发一个Windows窗体应用程序,它使用Expression Encoder 4 SDK控制DV-CAM。在过去,我使用了Windows Media Encoder,但是我想升级到Expression Encoder,因为它看起来更加稳固。
总的来说,SDK工作得很好,我可以使用LiveDeviceSource和LiveJob控制和查看DV-CAM视频。但似乎缺少一些功能(或者我找不到它们)。我使用以下代码设置与DV-CAM的连接:
HandleRef handleRef = new HandleRef(videoPanel, videoPanel.Handle);
_preview = new PreviewWindow(handleRef);
_job = new LiveJob();
Collection devices = EncoderDevices.FindDevices(EncoderDeviceType.Video);
if (devices.Count > 0)
_device = devices[0];
if (_device != null)
{
_source = _job.AddDeviceSource(_device, _device); // init a LiveDeviceSource
_source.PreviewWindow = _preview;
_job.ActivateSource(_source);
}
一切正常。但我似乎无法找到DV-CAM的当前帧速率和当前状态。我可以使用以下方法获得总帧速率:
_source.SourcePropertiesSnapshot().TotalFrames;
但即使DV-CAM暂停,这也会不断增加。所以我有以下问题:
如何获取DV-CAM的当前帧位置?
如何获取DV-CAM的当前状态(播放/暂停/磁带结束等)?
谢谢!