【发布时间】:2020-06-03 17:19:18
【问题描述】:
我是 UWP 开发的新手,我正在尝试播放我的 ListView 中显示的歌曲。我正在编写的应用程序适用于在树莓派 pi3 上运行的 Windows IoT Core。
所以基本上现在发生的情况是,当我从ListView 中选择歌曲并点击播放按钮时,什么也没有发生?我想我需要让MediaPlayer 知道选择了哪首歌并播放那首歌?
这是我正在使用的代码:
XAML:
<MediaElement x:Name="mediaPlaylist" AreTransportControlsEnabled="True" Margin="389,-10,10,10">
<MediaElement.TransportControls>
<MediaTransportControls IsZoomEnabled="False" IsZoomButtonVisible='False' IsSeekBarVisible="True" IsSeekEnabled="True" IsFullWindowButtonVisible="False" IsStopButtonVisible="True"/>
</MediaElement.TransportControls>
</MediaElement>
<ListView
x:Name="SelectSong"
Margin="389,28,10,113"
FontStyle="Oblique"
FontWeight="Bold"
Background="DarkGreen"
ItemClick="SongClicked"
IsItemClickEnabled="True"
/>
C#:
public MainPage()
{
this.InitializeComponent();
_ = InitFolderAsync();
}
private async Task InitFolderAsync()
{
var files = await Windows.Storage.KnownFolders.MusicLibrary.GetFilesAsync();
foreach (StorageFile item in files)
{
SelectSong.Items.Add(item.Name.ToString());
}
}
private async void SongClicked(object sender, ItemClickEventArgs e)
{
var file = e.ClickedItem as StorageFile;
if (file != null)
{
var stream = await file.OpenReadAsync();
mediaPlaylist.SetSource(stream, file.ContentType);
mediaPlaylist.Play();
}
}
我想要这样一个人可以选择一首歌曲并播放它或循环播放所有歌曲。
谢谢
【问题讨论】:
-
为什么没有为你的列表视图实现模型和视图模型?处理项目和事件会容易得多。