Ошибка при добавлении музыкальных файлов в список AudioTrack - WP8

Я новичок в разработке приложений и создаю музыкальный проигрыватель для Windows Phone. Проблема в том, что я пытаюсь импортировать музыку из локальной музыкальной библиотеки в свое приложение.

У меня есть AudioPlaybackAgent и список музыки, которую он будет воспроизводить. Вот список:

public static List<AudioTrack> _playList = new List<AudioTrack>
        {
            new AudioTrack(new Uri("Chama os Mulekes.mp3", UriKind.Relative), 
                    "Chama os Mulekes", 
                    "ConeCrewDiretoria", 
                    "Com os Neurônios Evoluindo", 
                    new Uri("https://lh6.googleusercontent.com/-_d2oha1QzNM/UhjYxv3XsLI/AAAAAAAAAWk/QyWgG7ilTAs/s0-d/Cone-Crew-Diretoria-Com-os-neuronios-evoluindo.jpg", UriKind.Absolute))
        };

Я добавил в интерфейс кнопку, которая при нажатии импортирует файлы локальной музыкальной библиотеки в этот список воспроизведения. Вот код:

private async void ImportButton_Click(object sender, RoutedEventArgs e)
        {
            var musicLibrary = await KnownFolders.MusicLibrary.GetFilesAsync();
            foreach (StorageFile _file in musicLibrary)
            {
                var musicTags = await _file.Properties.GetMusicPropertiesAsync();
                MusicPlusAgent.AudioPlayer._playList.Add
                    (new AudioTrack (new Uri(_file.Path, UriKind.RelativeOrAbsolute),
                        musicTags.Title,
                        musicTags.Artist,
                        musicTags.Album,
                        null));
            }
        }

Когда вы запускаете приложение и нажимаете кнопку воспроизведения, запрограммированная музыка воспроизводится нормально, но когда я нажимаю кнопку импорта, приложение вылетает. Есть идеи, что здесь не так?

Ps. Извините за плохой английский.

1 ответ

Решение

Windows Phone BackgroundAudioPlayer API предшествует WinRT StorageFolder API и, следовательно, он не работает с этими типами файлов (но все еще доступен для бэк-компата). BackgroundAudioPlayer (и поэтому AudioTrack) предназначен для воспроизведения URL-адресов и файлов HTTP из локальной изолированной папки. Посмотрите это пошаговое руководство MSDN для получения дополнительной информации.

Обратите внимание, что вы не можете использовать XNA-based MediaLibrary API-интерфейсы либо для реализации собственного фонового аудиоплеера. Предполагается, что пользователь будет использовать встроенный музыкальный проигрыватель для воспроизведения этих файлов.

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