Я занимаюсь разработкой музыкального приложения. Я использовал listview
для добавления в него музыкальных файлов, но когда я нажимаю элемент списка, чтобы воспроизвести музыку, он выдает исключение, которое The URI is empty
. Любая помощь в этом отношении.Воспроизвести музыку, когда выбран элемент списка
Вот мой код
.xaml
<MediaElement x:Name="mediaElement" AreTransportControlsEnabled="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<MediaElement.TransportControls>
<MediaTransportControls IsZoomEnabled="False" IsZoomButtonVisible='False' IsSeekBarVisible="True" IsSeekEnabled="True" IsFullWindowButtonVisible="False" IsStopButtonVisible="True"/>
</MediaElement.TransportControls>
</MediaElement>
<ListView x:Name="listView" Margin="0,0,0,115" ItemClick="itemclicked" IsItemClickEnabled="True">
</ListView>
.cs
public MainPage()
{
this.InitializeComponent();
files();
}
private async void files()
{
var query = KnownFolders.MusicLibrary.CreateFileQuery();
var allFiles = await query.GetFilesAsync();
foreach (var f in allFiles)
{
listView.Items.Add(f.DisplayName.ToString());
}
private void itemclicked(object sender, ItemClickEventArgs e)
{
mediaElement.Source = new Uri(listView.SelectedValuePath);
}
Кажется, вы не понимаете, как это работает. Как следует из названия, [StorageFile.DisplayName] (https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.storagefile.displayname.aspx) возвращает удобное для пользователя имя файла , Не путь к файлу. И [SelectedValuePath] (https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.selector.selectedvaluepath.aspx) используется с привязкой данных (которую ваш XAML не использует). Рассматривали ли вы использование отладчика? – IInspectable