Radio
von HHDS
von HHDS
Guten Abend,
in diesem Tutorial wollte ich euch mal ein einfaches Radio mit Usertrack-funktion zeigen. Vorweg sei gesagt, dass ihr euch schon mit Listen und vorallem den file_find_ -Funktionen beschäftigt haben solltet, da ich auf einzelne Dinge nicht eingehen werde.
So, dann wollen wir mal!
Das erste, dass wir machen, ist eine Tracklist zu erstellen. dazu erstellen wir ein Object und nennen es mal obj_radio. In das Create-Event schreiben wir:
Alles anzeigen
Nach diesem Code wird eine Tracklist erstellt, im Ordner "user" nach MP3-Dateien geschaut und ggf. in die List geaddet. Statt MP3s kann man auch andere Formate nehmen. Ich beschränke mich hier allerdings auf MP3.
So, damit wäre der erste Teil geschafft.
Der nächste Teil ist die Soundauswahl.
Da wir schon dem alarm[0]-event den Wert 60 gegeben haben, schreiben wir nun ins Alarm[0] folgendes:
Alles anzeigen
Dieser Teil ist etwas kompliziert:
Zunächst wird abgefragt, ob keiner der usertracks abgespielt wird. Ist dies der Fall, wird der Variable value einen zufälligen Wert aus der Anzahl der usertracks zugewiesen.
Dann folgt eine Schleife, die solange ausgefürt wird, bis value einen anderen Wert als den vorigen zugewiesen bekommen hat. Somit wird ein mehrfaches Abspielen eines Tracks hintereinander vermieden.
Zum Schluss wird der neue Track abgespielt und das Alarm-Event zuück gesetzt.
So, das wars fürs erste. Im Anhang findet ihr das Example dazu. Einfach in den Ordner "user" eure MP3s reinkopieren und ausprobieren.
Zum Schluss möchte ich noch copyboy für seine Hilfe bei den file_find_ -Funktionen danken.
Viel Spaß und Erfolg bei euren Projekten.
radio_example.zip GM 8
example_radio_gm7.zip GM 7
HHDS
in diesem Tutorial wollte ich euch mal ein einfaches Radio mit Usertrack-funktion zeigen. Vorweg sei gesagt, dass ihr euch schon mit Listen und vorallem den file_find_ -Funktionen beschäftigt haben solltet, da ich auf einzelne Dinge nicht eingehen werde.
So, dann wollen wir mal!
Das erste, dass wir machen, ist eine Tracklist zu erstellen. dazu erstellen wir ein Object und nennen es mal obj_radio. In das Create-Event schreiben wir:
GML-Quellcode
- // Create a list
- track_list = ds_list_create();
- i = 0; // Set user_track-value to 0
- n = 0;
- //search for files
- path = working_directory+"\user\"
- user_track = file_find_first(path+"*.mp3",0);
- if (user_track != "")
- {
- ds_list_add(track_list,user_track);
- usr_track[i] = sound_add(path+user_track,3,true); // Falls diese Zeile einen Fehler auslöst, einfach usr_track[i] durch user_track[i] ersetzen
- i+=1;
- while(1)
- {
- user_track = file_find_next();
- if (user_track != "")
- {
- ds_list_add(track_list,user_track);
- usr_track[i] = sound_add(path+user_track,3,true); // hier ebenso
- i += 1;
- }
- else
- { break;}
- }
- }
- value = floor(random(i));
- _value = value;
- sound_play(usr_track[value]); // user_track[value]
- alarm[0] = 60;
Nach diesem Code wird eine Tracklist erstellt, im Ordner "user" nach MP3-Dateien geschaut und ggf. in die List geaddet. Statt MP3s kann man auch andere Formate nehmen. Ich beschränke mich hier allerdings auf MP3.
So, damit wäre der erste Teil geschafft.
Der nächste Teil ist die Soundauswahl.
Da wir schon dem alarm[0]-event den Wert 60 gegeben haben, schreiben wir nun ins Alarm[0] folgendes:
GML-Quellcode
Dieser Teil ist etwas kompliziert:
Zunächst wird abgefragt, ob keiner der usertracks abgespielt wird. Ist dies der Fall, wird der Variable value einen zufälligen Wert aus der Anzahl der usertracks zugewiesen.
Dann folgt eine Schleife, die solange ausgefürt wird, bis value einen anderen Wert als den vorigen zugewiesen bekommen hat. Somit wird ein mehrfaches Abspielen eines Tracks hintereinander vermieden.
Zum Schluss wird der neue Track abgespielt und das Alarm-Event zuück gesetzt.
So, das wars fürs erste. Im Anhang findet ihr das Example dazu. Einfach in den Ordner "user" eure MP3s reinkopieren und ausprobieren.
Viel Spaß und Erfolg bei euren Projekten.
radio_example.zip GM 8
example_radio_gm7.zip GM 7
HHDS
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von _HHDS_ ()