yto*_*ano 3 camera augmented-reality windows-phone-7
我正在为Windows Phone 7编写一个增强现实应用程序作为学校项目.我想获取相机输出,然后在其上添加一层数据.有没有办法让相机输出显示在面板中?
小智 7
仅供参考:在Windows Phone SDK 7.1(又名"Mango")中,您现在可以编写使用设备相机的应用程序.请参阅App Hub以获取最新7.1开发工具的链接.该文档描述了如何在以下链接中执行此操作:
但基本上,添加一个videobrush来显示相机输入(又名"取景器").例如,这里使用矩形控件显示相机取景器:
<!--Camera viewfinder >-->
<Rectangle Width="640" Height="480"
HorizontalAlignment="Left"
x:Name="viewfinderContainer">
<Rectangle.Fill>
<VideoBrush x:Name="viewfinderBrush" />
</Rectangle.Fill>
</Rectangle>
Run Code Online (Sandbox Code Playgroud)
要在页面的代码隐藏中使用相机,请添加对Microsoft.XNA.Framework的引用,并在页面顶部放置以下Using语句:
// Directives
using Microsoft.Devices;
using System.IO;
using System.IO.IsolatedStorage;
using System.Windows.Media.Imaging;
using Microsoft.Xna.Framework.Media;
Run Code Online (Sandbox Code Playgroud)
注意:您可能不需要所有这些,我只是从文档中复制它.在Visual Studio(至少是Pro)中,您可以在完成后通过右键单击代码文件并单击" 组织使用"来清理它们.删除未使用的使用情况.
然后,基本上你将相机图像应用于OnNavigatedTo处理程序中的矩形...
//Code for initialization and setting the source for the viewfinder
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
// Initialize camera
cam = new Microsoft.Devices.PhotoCamera();
//Set the VideoBrush source to the camera.
viewfinderBrush.SetSource(cam);
}
Run Code Online (Sandbox Code Playgroud)
...并在OnNavigatingFrom中处理相机对象.
protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
{
// Dispose camera to minimize power consumption and to expedite shutdown.
cam.Dispose();
// Good place to unhook camera event handlers too.
}
Run Code Online (Sandbox Code Playgroud)
7.1文档还描述了以下主题中的增强现实应用程序.请注意,您需要向下滚动到标题为" 创建基于Silverlight的增强现实应用程序"的部分,以查找使用Mango构建它的说明.
如何:使用Windows Phone的Combined Motion API
希望这也有助于其他人在Windows Phone OS 7.1中寻找有关PhotoCamera的信息.
干杯
| 归档时间: |
|
| 查看次数: |
3612 次 |
| 最近记录: |