UnAuthorizedAccessException при доступе к методу GetPath() для MediaLibrary

Я действительно застрял в странной проблеме, которую я не мог воспроизвести на своем конце, но это часто происходит на стороне пользователя. Согласно трассировке стека, когда пользователь переходит на определенную страницу, приложение падает. Следуя трассировке стека этой проблемы, полученной от Microsoft.

Frame    Image                                                    Function                                                                                                               Offset        
0        Microsoft.Xna.Framework.MediaLibraryExtensions.ni.dll    Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.ThrowExceptionFromResult                          0x00000f5e    
1        Microsoft.Xna.Framework.MediaLibraryExtensions.ni.dll    Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.GetPathFromItemInternal                           0x00000050    
2        Microsoft.Xna.Framework.MediaLibraryExtensions.ni.dll    Microsoft.Xna.Framework.Media.PhoneExtensions.MediaLibraryExtensions.GetPath                                           0x00000022    
3        InstaRepost.ni.DLL                                       InstaRepost.Gallery.OnNavigatedTo                                                                                      0x000000ae    
4        Microsoft.Phone.ni.dll                                   Microsoft.Phone.Controls.PhoneApplicationPage.InternalOnNavigatedTo                                                    0x000002d4    
5        Microsoft.Phone.ni.dll                                   Microsoft.Phone.Controls.PhoneApplicationPage.Microsoft.Phone.Controls.IPhoneApplicationPage.InternalOnNavigatedToX    0x0000000c    
6        Microsoft.Phone.ni.dll                                   System.Windows.Navigation.NavigationService.RaiseNavigated                                                             0x0000038e    
7        Microsoft.Phone.ni.dll                                   System.Windows.Navigation.NavigationService.CompleteNavigation                                                         0x00000158    
8        Microsoft.Phone.ni.dll                                   System.Windows.Navigation.NavigationService.ContentLoader_BeginLoad_Callback                                           0x000002aa    
9        Microsoft.Phone.ni.dll                                   System.Windows.Navigation.PageResourceContentLoader.BeginLoad_OnUIThread                                               0x000002b4    
10       Microsoft.Phone.ni.dll                                   System.Windows.Navigation.PageResourceContentLoader+__c__DisplayClass4._BeginLoad_b__0                                 0x0000000a

Что я пытаюсь сделать в коде, так это то, что у меня есть изображения в Medialibrary, а также в IsolatedStorage приложения. Поэтому, чтобы отобразить их, я читаю их имена из изолированного хранилища, а затем открываю их из MediaLibrary.

for (int i = 0; i < filesNames.Length; i++)
       {
         if (!filesNames[i].Contains(".tmp") && !filesNames[i].Contains("_ApplicationSettings"))
            {
               obj = new VideoInformation();
               obj.videoName = filesNames[i];
               obj.timeCreated = isolatedStorageFile.GetCreationTime(filesNames[i]);
               for (int j = 0; j < instaRepostPictures.Count; j++)
                {
                   string imagePath = Pictures[j].GetPath();
                   if (imagePath.Contains(obj.videoName))
                    {
                     obj.thumbnailpath = PictureDecoder.DecodeJpeg(Pictures[j].GetThumbnail());
                            //obj.thumbnailpath.
                        }
                    }
                    pictureList.Add(obj);
                }
            }

Я думаю, что проблема в функции GetPath. Я проверил возможности и возможности ID_CAP_MEDIALIB_PHOTO. Пожалуйста, если кто-нибудь может помочь мне определить эту проблему. БУДУ благодарен.


person user1971051    schedule 10.12.2014    source источник


Ответы (1)


Попробуйте добавить этот фрагмент кода, так как вы должны сами вызывать метод FrameworkDispatcher.Update для отправки сообщений, находящихся в очереди сообщений XNA Framework.

Microsoft.Xna.Framework.FrameworkDispatcher.Update();

как вы сказали, убедитесь, что ваши Capabilities отмечены галочкой из Manifest.

Ссылка: MSDN

person Kulasangar    schedule 11.12.2014