首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinPhone8相机API似乎在释放调用后继续运行。

WinPhone8相机API似乎在释放调用后继续运行。
EN

Stack Overflow用户
提问于 2013-02-18 11:26:11
回答 1查看 548关注 0票数 1

我在照相机API上面临着一个严重的问题,即使我知道在99.99%的情况下,框架并不是罪魁祸首,我开始认为,在windows中处理摄像头的方式可能存在问题。

问题

我的代码很简单,只有两个非常简单的页面:第一个是用于导航到第二个页面的按钮,它使用camera并在屏幕上呈现预览缓冲区。在第一页中,我还添加了一个带有循环动画的矩形来旋转它,以迫使应用程序更新帧速率。

概要文件会话的结果如下:

只要我停留在第一页,框架计数器就会显示一个坚固的60 the。一旦我启动第二页特色的相机,fps下降由于使用系统相机。但是,当我按回键时,相机被正确地处理了,但是帧率有点低(大约53 fps)。更令人印象深刻的是,图表数据显示某些东西仍然在运行,并且损害了性能!内置分析告诉我,系统应用程序使用了47%的CPU,就像在显示相机页面时一样!

这种行为有什么已知的原因吗?

我的密码

我的第二页代码隐藏:

代码语言:javascript
复制
public partial class MyScannerView : PhoneApplicationPage {
    private PhotoCamera camera;

    public MyScannerView() {
        InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e) {
        base.OnNavigatedTo(e);

        camera = new PhotoCamera(CameraType.Primary);
        viewfinderBrush.SetSource(camera);
    }

    protected override void OnNavigatedFrom(NavigationEventArgs e) {
        base.OnNavigatedFrom(e);

        if (camera != null) {
            camera.Dispose();
            camera = null;
        }
    }
}

我的第二页的XAML:

代码语言:javascript
复制
<Canvas x:Name="viewfinderCanvas">
    <Canvas.Background>
        <VideoBrush x:Name="viewfinderBrush">
            <VideoBrush.RelativeTransform>
                <CompositeTransform x:Name="viewfinderTransform" CenterX="0.5" CenterY="0.5" />
            </VideoBrush.RelativeTransform>
        </VideoBrush>
    </Canvas.Background>
</Canvas>
EN

回答 1

Stack Overflow用户

发布于 2013-08-15 10:02:23

我的应用程序也有类似的外观问题,它使用相机。通过使用not OnNavigatedFrom但OnNavigatingFrom覆盖并按照这样的顺序执行它,成功地克服了它:

  1. 取消事件订阅
  2. 处置();
  3. 照相机=空;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14935176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档