【问题标题】:Developing a media player for Windows Phone 8为 Windows Phone 8 开发媒体播放器
【发布时间】:2015-12-14 16:42:27
【问题描述】:

我要为 Windows Phone 8 设计一个媒体播放器。 我阅读了有关使用 MediaLibrary(用于使用内置播放器)和 MediaElement(用于设计自定义播放器)的信息。

我使用 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);
  }
}

接下来我需要设计播放列表,我可以在其中显示列表歌曲列表中的所有歌曲。 我不知道如何设计播放列表功能。

例如。制作一个可以显示播放列表中所有名称的框,以及如何顺序显示歌曲名称。

【问题讨论】:

    标签: c# xaml windows-phone-8 mediaelement


    【解决方案1】:

    您可以为此使用列表框...

    这是原始的 xaml 声明

    <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;

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

    【讨论】:

      【解决方案2】:

      试试这个。

      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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-20
        • 2023-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多