Прежде всего, я довольно новичок в UWP, поэтому, если этот вопрос глуп, приношу свои извинения.
Что я пытаюсь сделать, это установить обработчик события, когда песня закончилась, чтобы я могначать следующий.Однако при запуске меня выдает следующая ошибка после запуска программы Exception thrown: 'System.ArgumentException' in System.Private.CoreLib.ni.dll
An exception of type 'System.ArgumentException' occurred in System.Private.CoreLib.ni.dll but was not handled in user code
Delegate to an instance method cannot have null 'this'.
Эта ошибка восходит к mediaPlayer.MediaPlayer.MediaEnded += MediaPlayer_MediaEnded1;
Я подозреваю, что неправильно устанавливаю обработчик.
<MediaPlayerElement x:Name="mediaPlayer" AreTransportControlsEnabled="True" Margin="0,0,0,0"/>
Вот мой код
List<Song> songs = new List<Song>();
//private MediaPlayerElement PlayMusic = new MediaPlayerElement();
private int curSongIndex = 0;
private IReadOnlyList<StorageFile> files;
public MainPage(){
this.InitializeComponent();
slist.ItemClick += Slist_ItemClick;
mediaPlayer.MediaPlayer.MediaEnded += MediaPlayer_MediaEnded1;
}
private void MediaPlayer_MediaEnded1(Windows.Media.Playback.MediaPlayer sender, object args) {
playNextSong();
}
private void Play(Song song) {
mediaPlayer.Source = MediaSource.CreateFromStorageFile(song.File);
mediaPlayer.MediaPlayer.Play();
AlbumArt.Source = song.Art;
}
private void Slist_ItemClick(object sender, ItemClickEventArgs e) {
for(int i = 0; i < songs.Count; i++) {
if (e.ClickedItem.Equals(songs[i])) {
Play(songs[i]);
curSongIndex = i;
}
}
}