C# 使用BackgroundMediaPlayer播放歌曲
我正在尝试播放StorageFile列表中的歌曲。我可以加载所有歌曲,但我不知道如何使用C# 使用BackgroundMediaPlayer播放歌曲,c#,audio,windows-phone-8.1,media-player,C#,Audio,Windows Phone 8.1,Media Player,我正在尝试播放StorageFile列表中的歌曲。我可以加载所有歌曲,但我不知道如何使用BackgroundMediaPlayer 到目前为止,我得到的是: 用户界面 我知道这是一种复杂的方式,但我没有找到更好的解决方案,可以在ListView(或任何视图)中列出我的相册并播放该相册中的所有歌曲。如果您需要后台任务项目并发送文件来播放,可能会对您有所帮助。您可以在GitHub上查看我正在进行的工作音乐播放器:@Filip我稍后再查看,谢谢:) <Button Content
BackgroundMediaPlayer
到目前为止,我得到的是:
用户界面
我知道这是一种复杂的方式,但我没有找到更好的解决方案,可以在ListView(或任何视图)中列出我的相册并播放该相册中的所有歌曲。如果您需要后台任务项目并发送文件来播放,可能会对您有所帮助。您可以在GitHub上查看我正在进行的工作音乐播放器:@Filip我稍后再查看,谢谢:)
<Button Content="Load" x:Name="loadbutton" Height="100" Width="100" Click="loadButton_Click"/>
<ListView x:Name="FolderList" HorizontalAlignment="Left" Height="250" VerticalAlignment="Top" Width="400">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Name="TextBlockAlbum" Text="{Binding DisplayName}" Tapped="Album_Tapped" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
private async void loadButton_Click(object sender, RoutedEventArgs e)
{
await RetriveFilesInFolders(listOfFiles, folder);
var ListOfAlbum = (await folder.GetFoldersAsync(CommonFolderQuery.GroupByAlbum)).ToList();
FolderList.ItemsSource = ListOfAlbum; //ListView contains Albums
}
private async Task RetriveFilesInFolders(List<StorageFile> list, StorageFolder parent)
{
foreach (var item in await parent.GetFilesAsync()) list.Add(item);
foreach (var item in await parent.GetFoldersAsync()) await RetriveFilesInFolders(list, item);
}
private async void Album_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
{
//Load Tracks From Album
TextBlock st = (TextBlock)sender;
string albumname = st.Text;
IReadOnlyList<StorageFile> ListOfSongs = (await folder.GetFilesAsync()).ToList();
List<StorageFile> mylist = new List<StorageFile>();
foreach(var file in ListOfSongs)
{
MusicProperties musicProperties = await file.Properties.GetMusicPropertiesAsync();
if (musicProperties.Album == albumname)
mylist.Add(file);
}
}
BackgroundMediaPlayer.Current.SetFileSource(mylist[2]);
var message = new ValueSet();
message.Add(Constants.StartPlayback, "0");
BackgroundMediaPlayer.SendMessageToBackground(message);