1

我做了下面的代碼的剪切和粘貼關於如何使用CameraPreviewImageSource和訪問預覽緩衝區框架,但不工作,它似乎幀緩衝區大小爲0x0讀取OnPreviewFrameAvailable事件的IImageSize參數的值。CameraPreviewImageSource空預覽框

How to get preview buffer of MediaCapture - Universal app

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已選定

實施CameraPreviewImageSource上的Silverlight應用程序的偉大工程!

+0

您看到了什麼錯誤? – 2015-02-25 08:56:00

+0

嗨, 誤差如下: 的操作試圖在有效範圍之外訪問數據(從HRESULT異常:0x8000000B) WW:0小時:0 線程量0xDB4已經退出,代碼0(爲0x0)。 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務task) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務task) 在System.Runtime.CompilerServices.TaskAwaiter'1.GetResult() 在AugmentedReality.MainPage 。 d__19.MoveNext() 這似乎發生幀的大小爲0 x 0或空。 – Jano 2015-02-26 09:27:00

+0

你在做什麼設備?我曾經見過類似的東西,但它是設備特定的... – 2015-02-26 15:13:45

回答

2

恐怕您在Lumia Imaging SDK 2.0.184中發現了一個錯誤。該問題僅出現在某些相機型號上,僅出現在8.1 /通用應用程序上。 Silverlight應用程序不受問題影響。

該錯誤已在新發布的Lumia Imaging SDK 2.0.208中修復。從發行說明:

修復了CameraPreviewImageSource在與某些相機型號一起使用時引發的ArgumentOutOfRangeException。