在MediaLibrary WP8中播放选定的歌曲

时间:2014-06-08 23:39:33

标签: windows-phone-8

这是我的问题:我有一个LongListSelector,它列出了MediaLibrary中的歌曲和SelectionChanged事件。当用户点击LongListSelector中的歌曲时,它会播放该歌曲一次,然后停止播放。但是,一旦选定的歌曲完成,我想从MediaLibrary播放下一首歌

这是我的LongListSelector:

<phone:LongListSelector x:Name="llsSongs" SelectionChanged="llsSongs_SelectionChanged" Margin="0,-30,0,0">
    <phone:LongListSelector.ItemTemplate>
        <DataTemplate>
            <StackPanel Margin="5,5,5,5">
                <TextBlock Text="{Binding Name}" FontSize="20" Foreground="Black"/>
                <TextBlock Text="{Binding Artist}" FontSize="15" Opacity="0.75" Foreground="Black"/>
            </StackPanel>
        </DataTemplate>
    </phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>

和SelectionChanged方法

    private void llsSongs_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        Song _selectedSong = llsSongs.SelectedItem as Song;
        MediaPlayer.Play(_selectedSong);           
    }

1 个答案:

答案 0 :(得分:-1)

看看那些文章

http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394039(v=vs.105).aspx http://developer.nokia.com/community/wiki/Audio_recording_and_playback_options_in_Windows_Phon

修改

根据您对MediaLibraryMediaPlayer XNA.Framework.Media命名空间类的使用情况,您可以利用MediaPlayer的MediaStateChanged事件。

private void MediaPlayerOnMediaStateChanged(object sender, EventArgs e)
{
    if (MediaPlayer.State == MediaState.Stopped)
    {
        MediaPlayer.Play(nextSong);
    }
}

由于您的收藏包含MediaLibrary.Songs,SongCollection返回的Song,因此nextSong将成为数据绑定集合中的下一个索引。