[英]How to play a selected song from ListView in UWP App
我是 UWP 开发的新手,并尝试播放在我的ListView
中显示的歌曲。 我正在编写的应用程序适用于在树莓派 pi3 上运行的 Windows IoT Core。
所以基本上现在发生的事情是当我 select 从我的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();
}
}
我想有这样一个人可以 select 一首歌曲并播放它或循环播放所有歌曲。
谢谢
如何在 UWP App 中从 ListView 播放选定的歌曲
请检查这一行SelectSong.Items.Add(item.Name.ToString());
您只需将文件名添加到 listview 项目,而不是文件,因此您无法使用var file = e.ClickedItem as StorageFile
获取文件。
我们需要编辑SongClicked
并获取带有陈词滥调的音乐文件,如下所示。
private async void SongClicked(object sender, ItemClickEventArgs e)
{
var file = await KnownFolders.MusicLibrary.GetFileAsync(e.ClickedItem.ToString());
if (file != null)
{
var stream = await file.OpenReadAsync();
mediaPlaylist.SetSource(stream, file.ContentType);
mediaPlaylist.Play();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.