MediaElement - Utwór nie odtwarza się

MediaElement - Utwór nie odtwarza się
gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
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 :)

AG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
0

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

Kopiuj
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?

gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
0

Bindowanie spełnia swoja rolę na pewno

AG
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
0

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

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

this.PropertyChanged jest nullem?

gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
0

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

Kopiuj
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; }
        }
gswidwa
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 839
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.