2012-11-13 4 views
2

Je suis en train de faire une simple application webcam:UnauthorizedAccessException dans l'application Webcam

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.Media.MediaProperties; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Media.Imaging; 
using Windows.UI.Xaml.Navigation; 

namespace App1 
{ 
public sealed partial class MainPage : Page 
{ 
    private Windows.Media.Capture.MediaCapture m_mediaCaptureMgr; 
    private Windows.Storage.StorageFile m_photoStorageFile; 
    private readonly String PHOTO_FILE_NAME = "photo.jpg"; 

    public MainPage() 
    { 
     this.InitializeComponent(); 
    } 


    internal async void initializeCamera() 
    { 
     m_mediaCaptureMgr = new Windows.Media.Capture.MediaCapture(); 
     await m_mediaCaptureMgr.InitializeAsync(); 
     statusBox.Text = "initialized"; 
    } 
    /// <summary> 
    /// Invoked when this page is about to be displayed in a Frame. 
    /// </summary> 
    /// <param name="e">Event data that describes how this page was reached. The Parameter 
    /// property is typically used to configure the page.</param> 
    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
    } 

    internal async void takePicture(object sender, RoutedEventArgs e) 
    { 

     m_photoStorageFile = await Windows.Storage.KnownFolders.PicturesLibrary.CreateFileAsync(PHOTO_FILE_NAME, Windows.Storage.CreationCollisionOption.GenerateUniqueName); 
     ImageEncodingProperties imageProperties = ImageEncodingProperties.CreateJpeg(); 
     await m_mediaCaptureMgr.CapturePhotoToStorageFileAsync(imageProperties, m_photoStorageFile); 
    } 

    private void initializeButton(object sender, RoutedEventArgs e) 
    { 
     initializeCamera(); 
    } 
} 

}

Cependant, lorsque je clique sur le initializeButton, je me suis une exception:

UnauthorizedAccessException (Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))) 

Quel pourrait être le problème ici?

EDIT: J'ai trouvé le bogue. Fondamentalement, si la webcam est déjà initialisée, essayer de l'initialiser à nouveau déclenchera une exception. J'ai donc dû mettre un drapeau, et certains essayer/attraper

+0

Fournir plus d'informations. Quelle ligne est à l'origine du problème? –

Répondre

1

Avez-vous défini les capacités pour Microphone et Webcam dans le fichier manifeste?

+0

Je l'ai déjà fait – Chin

+0

Existe-t-il une exception interne? – ChristiaanV

0

Seect la capacité du microphone et Webcam dans Package.Appmnifest fichier

enter image description here

+0

Je l'ai déjà fait – Chin

+0

Êtes-vous sûr de ne pas accéder à autre chose nécessitant une définition de capacité? – Mayank

Questions connexes