2014-03-29 89 views
1

我将为Windows Phone 8设计一款媒体播放器。 我阅读了关于使用MediaLibrary(用于内置播放器)和MediaElement(用于设计自定义播放器)的内容。开发适用于Windows Phone 8的媒体播放器

我使用MediaSource使用以下语句获取位于手机存储中的所有文件。

MediaSource media_local = MediaSource.GetAvailableMediaSources().First((source => source.MediaSourceType == MediaSourceType.LocalDevice)); 
using (MediaLibrary mediaLibrary = new MediaLibrary(media_local)) 
{ 
    SongCollection Songs = mediaLibrary.Songs; 
    MediaPlayer.Play(mediaLibrary.Songs); 
    List<Song> songslist = Songs.ToList(); 
    foreach (var item in songslist) 
    { 
    System.Diagnostics.Debug.WriteLine(item.Name); 
    } 
} 

接下来,我需要设计的播放列表,我可以在清单中显示的SongList所有歌曲。 我不知道该设置播放列表功能。

例如,制作一个可以显示播放列表中所有名字的盒子,以及如何继续显示歌曲名称。

回答

2

你可以使用一个列表框为...

这是原始的XAML declration

<ListBox x:Name="listBoxSong" FontSize="26"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding Name}" Width="150"/> 
       <TextBlock Text="{Binding TrackNumber}"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

现在只是你的列表绑定到该列表框的代码。

像这样:

listBoxSong.ItemSource = songslist;

这将生成一种列表结构类型,并在很大程度上提供了自定义。

0

试试这个。

的XAML

<phone:LongListSelector Name="llsPlaylist" 
         LayoutMode="List" 
         SelectionChanged="SelectSong_SelectionChanged"> 
    <phone:LongListSelector.ItemTemplate> 
     <DataTemplate> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="50" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="Auto" /> 
      </Grid.ColumnDefinitions> 
      <Grid Width="40" 
        Height="40" 
        Margin="0 5 5 0" 
        VerticalAlignment="Top" 
        HorizontalAlignment="Right"> 
        <Ellipse Stroke="White" 
        StrokeThickness="2" /> 
        <Image Source="/Assets/Icons/play.png" 
         Height="30" 
         Width="30" 
         Margin="3 0 0 0" 
         VerticalAlignment="Center" 
         HorizontalAlignment="Center" /> 
      </Grid> 
      <StackPanel Grid.Column="1" 
         Margin="20 0 20 0"> 
       <TextBlock Foreground="White" 
          FontSize="24" 
          TextWrapping="NoWrap" 
          Text="{Binding Name}" /> 
       <TextBlock Foreground="Gray" 
          FontSize="18" 
          TextWrapping="NoWrap" 
          Text="{Binding Artist}" /> 
      </StackPanel> 
      <TextBlock FontSize="16" 
         Foreground="White" 
         Grid.Column="2" 
         HorizontalAlignment="Right" 
         Padding="0 12 0 0" 
         TextWrapping="NoWrap" 
         Text="{Binding Duration}"> 
      </TextBlock> 
     </Grid> 
    </DataTemplate> 
    </phone:LongListSelector.ItemTemplate> 
</phone:LongListSelector> 

CS

llsPlaylist.ItemSource=songslist;