UWP MediaEnded обработчик события для MediaPlayerElement Бросает System.ArgumentException - PullRequest
0 голосов
/ 20 февраля 2019

Прежде всего, я довольно новичок в 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;
            }
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...