Sprawozdanie z pracowni specjalistycznej
Zaawansowane techniki programistyczne
Dokumentacja projektu
,,Odtwarzacz muzyczny“
Wykonujący ćwiczenie: Dawid Jewdokimow
Łukasz Kościuk
Szymon Gutowski
Studia dzienne
Kierunek: Informatyka
Semestr: V Grupa zajęciowa: PS 2
Prowadzący ćwiczenie: dr inż. Cezary Bołdak
Opis zadania
Odtwarzacz muzyczny: obsługa podstawowych formatów plików dźwiękowych (przynajmniej WAV i MP3); playlisty odtwarzanych plików z możliwością edycji (dodawanie, usuwanie, zmiana kolejności); zapis playlist i ich eksport (do formatu XML i/lub JSON); biblioteka utworów z prezentacją w widokach względem nazwy artysty, jego albumów i ścieżek w albumie; możliwość sortowania widoków biblioteki przynajmniej po nazwie, roku wydania, długości ścieżki.
Implementacja
Język: Java
Dodatkowe biblioteki: JLayer – do odtwarzania plików muzycznych
Tika – do wyodrębniania metadanych z pliku muzycznych
Diagram klas
Użyte wzorce
Model-View-Controller
Zalety:
Brak zależności modelu od widoków
Łatwiejsza rozbudowa widoków
Wady:
Złożoność
Kosztowne zmiany modelu
Trudne testowanie widoków
Singleton
Pełnomocnik
Opis poszczególnych klas i najważniejszych metod
package: controllers (autor: Dawid Jewdokimow)
LibraryController - obsługuje widok i model biblioteki muzycznej
Najważniejsze metody:
public void setLibrary(String path) –rysuje drzewo w widoku i dodaje do niego operację dodawania utworów, albumów i artystów do playlisty
public void importLibrary() – wyszukuje utwory na podstawie adresu folderu podanego jako ścieżka i dodaje go do obiektu modelu biblioteki
public sortByYear(), public sortByName(), public sortByDuration() – sortuje widok biblioteki
PlaylistController - obsługuje widok i model listy odtwarzania z przyciskami do włączania i przełączania muzyki
Najważniejsze metody:
public void savePlaylist(String path) – zapisuje playlistę na dysku jako plik XML
public void loadPlaylist(String path) – wczytuje playlistę
PlayerController – obsługuje widok paska z przyciskami do włączania i przełączania muzyki
Najważniejsze metody:
public void stop(),public void play(), public void pause(), public void next(), public void previous() – każda metoda jest wywoływana wciśnięciem odpowiedniego przycisku, swoje operacje wykonuje, posługując się obiektem PausablePlayer
SetupController – obsługuje widok paska z opcjami programu
package: model (autor: Łukasz Kościuk)
Klasy modelu wykorzystywanego w widokach i obsługiwanego przez kontrolery. Ich obiekty służą do przechowywania informacji o albumach, artystach, utworach i bibliotece.
package: views (autor: Szymon Gutowski)
Widoki wykorzystujące bibliotekę GUI SWT.
package: tajfunplayer (autor: Łukasz Kościuk)
Sandbox – klasa z metodą Main zawierająca widoki
package: util (autor: nieznany, znalezione na portalu Stack Overflow)
PausablePlayer– klasa do obsługi biblioteki JLayler. Korzysta z niego klasa
Wymagania sprzętowe
procesor: Intel Pentium/AMD Athlon (lub lepszy);
system operacyjny: dowolny
Java SE Runtime Enviroment 7
kompilator obsługujący Javę w wersji 8 lub wyższej
Opis instalacji
W chwili pisania dokumentacji nie stworzyliśmy instalatora, więc aby sprawdzić działanie programu należy skompilować kod w zintegrowanym środowisku programistycznym obsługującym Javę w wersji 8.
Instrukcja użytkownika
Interfejs programu
Aby dodać bibliotekę odtwarzania, należy kliknąć przycisk Library na górnym panelu i wybrać folder z muzyką.
Aby dodać utwór do listy odtwarzania, należy kliknąć prawym przyciskiem myszy na wykonawcę, album lub utwór i wybrać opcję z rozwiniętego menu.
Wczytywanie i zapisywanie playlisty.
Sortowanie widoku biblioteki.
Usuwanie utworu z playlisty