WP8.1 BackgroundMediaPlayer не воспроизводится на устройстве, но работает на эмуляторе

У меня есть универсальный проект магазина Windows. В Windows Phone часть, я использую BackgroundMediaPlayer.Current играть аудио. Приложение получает доступ к медиафайлам через KnownFolders.MusicLibrary, Проблема в том, что я запускаю свое приложение на эмуляторе с виртуальной SD-картой, играет музыка и все идет хорошо. Но когда я разверну приложение в моем Lumia 920 Бег WP8.1 DevPreviewи нажмите кнопку "Play", тогда ничего не происходит. Без исключений, без принудительного закрытия... Полностью ничего. Вопрос: это проблема внутренней памяти (Lumia 920 нет SD-карты) или BackgroundMediaPlayer есть ошибка или ошибка скрывается в версии предварительного просмотра ОС?

1 ответ

У меня просто была такая же проблема.

Если вы регистрируетесь в обработчике: mediaPlayer.MediaFailed += mediaPlayer_MediaFailed; вы узнаете, что вы получите UnauthorizedAccessException при воспроизведении местных песен (не на SD-карте).

Вот что я сделал и как решил:

Ошибка возникает из-за BackgroundMediaPlayer.Current.SetUriSource, который по какой-либо причине работает только для файлов на SD-картах.

Таким образом, вместо передачи пути к файлу SetUriSourceЯ загрузил StorageFile с

StorageFile sf = await StorageFile.GetFileFromPathAsync(musicDataFullPath);

а потом

mediaPlayer.SetStreamSource((await sf.OpenStreamForReadAsync()).AsRandomAccessStream());

и так теперь работает....

Другие вопросы по тегам