我正在处理从网络摄像头捕获音视频的问题,这是针对Windows 8 Metro Style而不是桌面模式。我计划编写一个库,以便任何应用程序都可以使用这个库来流式传输视频。 Windows 8为Windows 8 Metro模式提供了Direct X和Win RT。 我有点困惑,不知道该用哪个来完成这个任务。 Win RT是否足够检测摄像头并捕获音视频? 这里需要Direct X参与吗?
我正在处理从网络摄像头捕获音视频的问题,这是针对Windows 8 Metro Style而不是桌面模式。我计划编写一个库,以便任何应用程序都可以使用这个库来流式传输视频。 Windows 8为Windows 8 Metro模式提供了Direct X和Win RT。 我有点困惑,不知道该用哪个来完成这个任务。 Win RT是否足够检测摄像头并捕获音视频? 这里需要Direct X参与吗?
WinRT本身提供了音频/视频捕获API,位于Windows.Media.Capture
命名空间下。您不需要使用DirectX。以下C#代码记录带有声音的视频并保存到当前用户的“视频”文件夹中。
var settings = new MediaCaptureInitializationSettings();
settings.StreamingCaptureMode = StreamingCaptureMode.AudioAndVideo;
var capture = new MediaCapture();
await capture.InitializeAsync(settings);
var profile = MediaEncodingProfile.CreateMp4(VideoEncodingQuality.Auto);
var file = await KnownFolders.VideosLibrary.CreateFileAsync("captured.mp4", CreationCollisionOption.GenerateUniqueName);
await capture.StartRecordToStorageFileAsync(profile, file);
如果只需要音频捕获,请使用 StreamingCaptureMode.Audio
和 MediaEncodingProfile.CreateM4a()