我正在.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 的当前状态(播放/暂停/磁带结束等)?
谢谢!