Aufgabe 18
Schwierigkeitsgrad: Einfach
Themen: Objektorientierung Standardbibliothek
- Aufgabenstellung
In dieser Aufgabe sollen Sie einen Grundlegenden Musikspieler schreiben, der Lieder abspeichern und in Playlists sortieren kann. Nutzen Sie, sofern möglich, für diese Aufgabe Datenstrukturen aus der Standardbibliothek. Teilen Sie die den Code sinnvoll auf mehrere Dateien auf. (Eine Struktur um den fertigen Spieler zu testen ist in main.cpp bereitgestellt.)
main.cpp
#include "player.hpp"
int main() {
Player player = Player();
// Erstelle Songs
Track track1 = Track("Way Up", {"Jaden"}, 153000, 130, "Filmmusik");
Track track2 = Track("Haus am See", {"Peter Fox"}, 216000, 124, "German Pop");
Track track3 = Track("Starboy", {"The Weeknd", "Daft Punk"}, 230000, 186, "R&B");
// Erstelle eine Playlist
std::string playlist_name = "Beispielmusik";
Playlist playlist = Playlist(playlist_name);
playlist.add_track(track1);
playlist.add_track(track2);
playlist.add_track(track3);
playlist.remove_track(track2);
player.add_playlist(playlist);
// Teste abspielen mit einer leeren Warteschlange
try {
player.start_playback();
} catch (const std::logic_error& err) {
std::cout << "Caught a logic_error: ";
std::cout << err.what() << std::endl;
std::cout << "-------------------------\n\n";
}
// Teste hinzufügen eines Songs zur Warteschlange
player.add_to_queue(track2);
// Teste hinzufügen einer Playlist zur Warteschlange
try {
player.add_to_queue(playlist_name);
} catch (const std::out_of_range err) {
std::cout << "Diese Playlist ist nicht im Player gespeichert.\n" << err.what();
}
// Teste abspielen
player.start_playback();
// Teste pausieren
player.pause_playback();
// Teste einen Song überspringen
player.skip();
// Teste stoppen
player.stop_playback();
}