在我的应用中,我想在分屏视图中显示前后摄像头的视频:
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Canvas>
<Canvas.Background>
<VideoBrush x:Name="backBrush" />
</Canvas.Background>
</Canvas>
<Canvas Grid.Row="1">
<Canvas.Background>
<VideoBrush x:Name="frontBrush" />
</Canvas.Background>
</Canvas>
<Ellipse Fill="Red" Height="80" Width="80" Grid.RowSpan="2" />
</Grid>
在我的C#代码中,我为两个摄像头设置了源代码:
PhotoCamera frontCam;
PhotoCamera backCam;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (PhotoCamera.IsCameraTypeSupported(CameraType.FrontFacing))
{
frontCam = new Microsoft.Devices.PhotoCamera(CameraType.FrontFacing);
frontBrush.SetSource(frontCam);
}
if (PhotoCamera.IsCameraTypeSupported(CameraType.Primary))
{
backCam = new Microsoft.Devices.PhotoCamera(CameraType.Primary);
backBrush.SetSource(backCam);
}
}
问题是,fronBrush.SetSource(frontCam);
和backBrush.SetSource(backCam);
都被调用,但我只看到顶部后置摄像头的视频。当我更改这些命令的顺序时,我会看到来自另一台摄像机的视频。我试过HTC 8X和仿真器。
是某种约束,还是错误,或者我做错了什么?
答案 0 :(得分:-1)
是的 - 我遇到了同样的问题。想做同样的事情。根据我的知识,不可能同时运行两个摄像头实例。如果您听到任何不同之处,请告诉我们!