CameraPreviewImageSource空的预览框 [英] CameraPreviewImageSource empty preview frame

查看:94
本文介绍了CameraPreviewImageSource空的预览框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我剪切并粘贴了以下有关如何使用CameraPreviewImageSource以及访问预览缓冲区帧的代码,但是没有用,似乎帧缓冲区的大小为0x0,读取了OnPreviewFrameAvailable事件的IImageSize参数的值.

I made cut and paste of the code below about how to use CameraPreviewImageSource and access to preview buffer frames, but do not work and it seems the frame buffer size is 0x0 reading the value of IImageSize parameter of OnPreviewFrameAvailable event.

如何获取MediaCapture的预览缓冲区-通用应用

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {            
        InitializeAsync();
    }

    public async void InitializeAsync()
    {            
        _cameraPreviewImageSource = new CameraPreviewImageSource();  
        await _cameraPreviewImageSource.InitializeAsync(string.Empty);
        var properties = await _cameraPreviewImageSource.StartPreviewAsync();

        var width = 640.0;
        var height = 480;
        _writeableBitmap = new WriteableBitmap((int)width, (int)height);

        _writeableBitmapRenderer = new WriteableBitmapRenderer(_cameraPreviewImageSource, _writeableBitmap);

        Initialized = true;

        _cameraPreviewImageSource.PreviewFrameAvailable += OnPreviewFrameAvailable;
    }

    private async void OnPreviewFrameAvailable(IImageSize args)
    {
        System.Diagnostics.Debug.WriteLine("ww:"+args.Size.Width+" hh:"+args.Size.Height);

        // Prevent multiple rendering attempts at once
        if (Initialized && !_isRendering)
        {
            _isRendering = true;    
            try
            {                    
                await _writeableBitmapRenderer.RenderAsync();                   
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("\n\n"+ex.Message);
                System.Diagnostics.Debug.WriteLine(ex.StackTrace);
            }
            _isRendering = false;
        }
    }

已选择Package.appxmanifest上的功能(网络摄像头和麦克风)

Capabilities (webcam & microphone) on Package.appxmanifest has been selected

在Silverlight应用程序上实现CameraPreviewImageSource效果很好!

Implementing CameraPreviewImageSource on a Silverlight app works great!

推荐答案

恐怕您(正在)看到Lumia Imaging SDK 2.0.184中的错误.该问题仅在某些型号的相机上出现,并且仅在8.1/通用应用程序上出现. Silverlight应用程序不受此问题的影响.

I am afraid you are (were) seeing a bug in Lumia Imaging SDK 2.0.184. The problem only occured on some camera models and only on 8.1/universal applications. Silverlight applications were not affected by the problem.

该错误已在新发布的 Lumia Imaging SDK 2.0.208 .从发行说明中:

The bug has been fixed in the newly released Lumia Imaging SDK 2.0.208. From release notes:

与某些相机型号一起使用时,CameraPreviewImageSource抛出固定的ArgumentOutOfRangeException异常.

Fixed ArgumentOutOfRangeException being thrown by CameraPreviewImageSource when used with certain camera models.

这篇关于CameraPreviewImageSource空的预览框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆