我是应用程序开发领域的新手,我正在为Windows Phone构建一个音乐播放器。问题是当我尝试将音乐从本地音乐库导入我的应用程序时。
我有一个音频播放代理和一个它将播放的音乐列表。以下是列表:
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));
}
}
当运行应用程序并触摸播放按钮时,预设音乐播放正常,但是当我触摸导入按钮时,应用程序崩溃。知道这里出了什么问题吗?
对不起,英语不好。
Windows Phone BackgroundAudioPlayer
API早于WinRT StorageFolder
API,因此它不适用于这些类型的文件(但仍可用于反向兼容)。 BackgroundAudioPlayer
(因此AudioTrack
)旨在播放本地独立存储文件夹中的 HTTP URL 和文件。有关详细信息,请参阅此 MSDN 演练。
请注意,您也不能使用基于 MediaLibrary
的 API 来实现您自己的后台音频播放器。假设用户将使用内置音乐播放器来播放这些文件。