MediaElement - Utwór nie odtwarza się

0

Hej wszystkim. Pewnie znów robię jakąś głupotę, ale już nie mam pomysłu.
MainWindowModel wysyła poprzez interfejs csharp IMediaEngine żadanie odtworzenia utworu. Cała procedura powinna już się dziać w środku. Postęp jest przesyłany przez eventy w Logach. Po wywołaniu tego żądania, czyli csharp void RequestToPlay(string Path); dostaję Log, że procedura się w ogóle rozpoczęła. jedyne, co robi ta metoda to zmiana property csharp MediaElement.Source poprzez interfejs Modelu. Niestety nie otrzymuję już logów z eventu csharp MediaElement.SourceUpdated. Możecie mnie naprowadzić, dlaczego? Poniżej przedstawiam kod.

MediaEngine.xaml: https://4programmers.net/Pastebin/7203
MediaEngine.xaml.cs: https://4programmers.net/Pastebin/7204
MediaEngineModel.cs: https://4programmers.net/Pastebin/7205
Enums, Interfaces, Class: https://4programmers.net/Pastebin/7206
Events: https://4programmers.net/Pastebin/7207

Będę wdzięczny za pomoc :)

0

Trochę to wszystko pogmatwane - nie udało mi się uruchomić programu - brakuje części kodu.
Wydaje mi się, że w

public void OnPropertyChanged(string propertyName)
        {
            var handler = this.PropertyChanged;
            if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
        }

handler jest nullem, możesz to sprawdzić?
Ogólnie chyba nie jest propagowana informacja o zmianie propertisa. W XAML nie pisałem jeszcze niczego, ale wydaje mi się że to bindowanie też nie spełnia swojej roli?

0

Bindowanie spełnia swoja rolę na pewno

0

handler jest nullem w kodzie powyżej?
albo w metodzie

private void OnPropertyChanged(string propertyName)
        {
            this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

this.PropertyChanged jest nullem?

0

Znalazłem, dlaczego mi nie przesyłało poprawnie komunikatów

public class TrackMessageEventArgs : EventArgs
        {
            public TrackMessageEventArgs(eTrackMessage Action, AdditionalInformation Exception)
            {
                this.Message = Message;
                this.Exception = Exception;
            }
            public eTrackMessage Message { get; private set; }
            public AdditionalInformation Exception { get; private set; }
        }
0

Spotkaliście się może z kłopotem zmiany Source i od razu po tym użycia metody Play() ? Czasem mój odtwarzacz po prostu nie wykrywa, że Source sie zmieniło i nic sie nie odtwarza. Nie wiem jak temu zaradzić.

release w załączniku do przetestowania

EDIT: w załączniku również kod źródłowy

1 użytkowników online, w tym zalogowanych: 0, gości: 1