2011-03-14 26 views
2

我知道Microsoft尚未正式支持任何視頻捕獲應用程序。我發現Clarity Consulting博客文章重點介紹瞭如何通過Silverlight使用相機(條目號:http://blogs.claritycon.com/kevinmarshall/2010/12/23/wp7-camera-access-flashlight-augmented-reality-and-barcode-scanning/)。但是,到目前爲止,我還沒有成功移植XNA框架使用的代碼。通過XNA應用程序在Windows Phone 7中捕獲攝像頭

有沒有人有幸在XNA應用程序中使用Windows Phone 7相機?如果是這樣,謹慎分享你的智慧?

謝謝!

回答

1

通常情況下,您可以像使用Silverlight一樣訪問攝像機 - 有CameraCaptureTask - 您需要首先添加對Microsoft.Phone的引用,然後從遊戲中調用它。

Microsoft.Phone.Tasks.CameraCaptureTask task = new Microsoft.Phone.Tasks.CameraCaptureTask(); 
task.Completed += new EventHandler<Microsoft.Phone.Tasks.PhotoResult>(task_Completed); 
task.Show(); 

這將是靜態的拍攝,並且你的事件處理程序是這樣的:

void task_Completed(object sender, Microsoft.Phone.Tasks.PhotoResult e) 
{ 
    // Do something with e.ChosenPhoto 
} 

目前,錄像是通過undocumented way做 - 這將最有可能獲得你的應用程序提交從不贊成市場,但它是可能的。

這樣做的原因是隨着錄製的進行,MP4文件在IsolatedStorage中不斷更新。但是,再次,目前有方法將文件包含在媒體庫中。

+0

太好了!我會試試這個。我們現在不關心市場批准,因爲我們只是想快速將其納入我們的開源AR框架。再次感謝! – dedual 2011-03-15 15:13:12

+0

嗨丹尼斯,我已經實現了大部分文章中強調的步驟,但是我還沒有得到它的工作。我唯一沒有實現的是將相機可視化器添加到LayoutRoot.Children.Add,因爲我在XNA中沒有看到類似的調用。我完全錯過了什麼嗎? – dedual 2011-03-16 20:07:41

+0

您需要在窗口中顯示CameraVisualizer(它是UIElement),並且僅在Silverlight中受支持。我目前正在尋找一種在XNA中進行這項工作的方法。 – 2011-03-17 06:42:17

0

認爲你對整個微軟和支持攝像機有點不清楚。

微軟不久前發佈了Expression Encoder 4,它不僅允許您在視頻屏幕上捕獲屏幕,還可以訪問連接到您電腦的所有設備。

我相信這會更加理想,然後被限制只使用Windows 7手機,特別是XNA遊戲。

希望這會流露出一些光芒。

+0

您好Reza,您正在考慮流式視頻,這不是我們想爲此做的事情。我們希望處理來自wp7設備的視頻,以用於增強現實應用程序,這需要我們進行視頻捕獲。鑑於我們的框架是基於XNA的,我們必須使用XNA。儘管感謝您的意見! – dedual 2011-03-15 19:35:57

+0

@dedual,其實不,我沒有,:D。它實際上是從連接到計算機的設備捕獲的。從未有過手機上的Windows Phone 7進行測試,但[Expression Encoder 4](http://www.microsoft.com/expression/products/Encoder4SP1_WhatsNew.aspx)包含win7手機預設。所以我會想象它能夠從該設備捕獲。 – 2011-03-15 19:49:43

相關問題