2011-11-01 66 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

如何在控件中顯示它? –