1

Я сделал вырезание и вставку кода ниже о том, как использовать CameraPreviewImageSource и получить доступ к кадрам предварительного просмотра, но не работает, и кажется, что размер буфера кадра равен 0x0, считывая значение параметра ImageSize события OnPreviewFrameAvailable ,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

Какая ошибка именно вы видите? –

+0

Привет, ошибка заключается в следующем: операция предпринята попытка получить доступ к данным за пределами допустимого диапазона (Исключение из HRESULT: 0x8000000B) WW: 0 чч: 0 Нить 0xdb4 завершился с кодом 0 (0x0). на System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача) Задача в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача) Задача в System.Runtime.CompilerServices.TaskAwaiter'1.GetResult() в AugmentedReality.MainPage . d__19.MoveNext() Это похоже на то, что размер кадра 0 x 0 или пустой. – Jano

+0

На каком устройстве вы работаете? Я видел что-то подобное раньше, но это было специфично для устройства ... –

ответ

2

Я боюсь, что вы (были) видели ошибку в Lumia Imaging SDK 2.0.184. Проблема возникла только на некоторых моделях камер и только на 8.1/универсальных приложениях. Проблема Silverlight не повлияла на эту проблему.

Исправлена ​​ошибка в выпуске Lumia Imaging SDK 2.0.208. Из примечаний к выпуску:

Исправлено нарушение ArgumentOutOfRangeException, созданное CameraPreviewImageSource при использовании с некоторыми моделями камер.