2011-11-01 61 views
4

我工作的音频/视频从网络摄像头捕捉,这是针对在Windows 8 Metro风格不上桌面模式。 我计划为此编写一个库以便任何应用程序都可以使用此库来流式视频。 Windows 8为Windows 8的metro模式提供Direct X和Win RT。我有点困惑,为此使用它。 单独获得RT RT是否足以检测相机并捕获音频/视频?此处是否需要Direct X参与?音频/视频捕获在Windows 8 Metro应用

回答

2

我在互联网上发现了这一点。因此,单独的Win RT就足够了。

http://code.msdn.microsoft.com/Media-Capture-Sample-adf87622

+0

现在的问题是哪种语言,我应该使用。看到我们可以开发库在C++中使用WinRT的C#两者。 使用C++和C#的优点和缺点是什么。见到这个库将被UI用来显示视频。用户界面可以使用任何适合Window 8 Metro模式的技术。所以请给出你对此的评论。 –

+0

该示例的“技术”说“HTML5,Windows运行时”。鉴于它明确说它使用WinRT,为什么你说WinRT是不够的? –

+0

@JoeWhite早些时候我很困惑,因为媒体相关的东西大部分都是在Windows的早期版本中被DirectX覆盖的。但是在Windows 8中Direct X处于低级别,所有的Win RT Api inturn都调用Direct X api。 –

1

有在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.AudioMediaEncodingProfile.CreateM4a()

+1

如何在控件中显示它? –