Stronę tą wyświetlono już: 2300 razy
Wstęp
Klasa QMediaPlayer jak nie trudno się domyślić służy do odtwarzania plików audio i video. Smutnym faktem jest jednak to, że do odtwarzania takich plików niezbędna jest obecność w systemie odpowiednich kodeków. W przypadku ich braku nie zależnie od systemu operacyjnego odtworzenie danego pliku zakończy się niepowodzeniem. Oprócz klasy QMediaPlayer warto też zapoznać się z klasą QMediaList, która umożliwia tworzenie listy odtwarzanych plików a także sterowaniem zapętlaniem odtwarzania pliku.
Zarówno klasa QMediaPlayer jak i QMediaList wymagają dopisania w pliku .pro następującej linijki:
oznaczającej, że dodatkowe biblioteki zostaną dołączone do programu i będzie można z nich korzystać. Dodatkowo konieczne będzie załączenie pliku nagłówkowego QMediaPlayer oraz QMediaPlaylist.
Tworzenie listy odtwarzanych plików i ich odtwarzanie
Oto bardzo prosty kod, pokazujący jak można stworzyć listę kilku plików, zapętlić je oraz uruchomić ich odtwarzanie:
Uruchamianie, wstrzymywanie i zatrzymywanie odtwarzania pliku
Klasa QMediaPlayer posiada następujące sygnały sterujące odtwarzaniem pliku multimedialnego:
- play - uruchamia odtwarzanie pliku z listy odtwarzania;
- stop - zatrzymuje odtwarzanie pliku z listy odtwarzania;
- pause - wstrzymanie odtwarzania pliku
Tryby odtwarzania plików z obiektu klasy QMediaPlaylist
Metoda setPlaybackMode umożliwia sterowanie sposobem odtwarzania plików znajdujących się na liście za pomocą następujących flag sterujących:
- QMediaPlaylist::CurrentItemOnce - odtwarza plik z ustawionego obecnie indeksu listy;
- QMediaPlaylist::CurrentItemInLoop - odtwarza w kółko plik z ustawionego obecnie indeksu listy;
- QMediaPlaylist::Sequential - odtwarza całą listę od bieżącego elementu do ostatniego, po odtworzeniu którego zatrzymuje odtwarzanie;
- QMediaPlaylist::Loop - odtwarza kolejno pliki z listy a po zakończeniu odtwarzania ostatniego rozpoczyna odtwarzanie od pierwszego pliku na liście;
- QMediaPlaylist::Random - odtwarza pliki z listy w sposób losowy;
Sterowanie głośnością odtwarzanego dźwięku
Klasa QMediaPlayer umożliwia ustawienie głośności odtwarzanej ścieżki dźwiękowej za pomocą metody volume, które przyjmuje wartość całkowitą z przedziału od 0 do 100. Istnieje również możliwość pozyskania informacji o aktualnie ustawionej głośności za pomocą metody volume.
Długość odtwarzanego pliku oraz pozycja odtwarzania
Każdy plik multimedialny zawiera informację o czasie jego trwania. Czas bieżącego odtwarzanego pliku można pozyskać za pomocą metody duration, która zwraca wartość typu quint64 określającą czas trwania pliku w milisekundach. Wartość ta może nie być od razu dostępna, gdyż jest ona ustawiana dopiero po wywołaniu sygnału durationChanged.
Możliwe jest również uzyskanie informacji o bieżącej pozycji odtwarzanego pliku multimedialnego za pomocą metody position, która również zwraca wartość typu quint64 określającą czas odtwarzania pliku w milisekundach. Każda zmiana położenia odtwarzania wiąże się z wywołaniem sygnału positionChanged. Możliwe jest ustawienie położenia odtwarzania pliku za pomocą metody setPosition. Ważne jest aby mieć na uwadze, że kontrolka QSlider wykorzystywana często do wyświetlania bieżącej pozycji odtwarzania pliku multimedialnego nie pozawala na poprawną bezpośrednią obsługę plików o długim czasie odtwarzania. Spowodowane jest to tym, że wartość reprezentowana przez tą kontrolkę jest typu int co znacznie odbiega zakresem od typu quint64. Zaradzić temu można stosując skalę procentową co wymaga zastosowania przeliczania bieżącej pozycji odtwarzania na wartość procentową.