Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 19:33

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Feb 17, 2006 16:50 
Offline
DGL Member

Registriert: Mo Jan 09, 2006 17:31
Beiträge: 37
Hallo Leute!
Ich bekomm das mit dem Soundsystem von SDL irgendwie nciht gebacken, hab jetzt zwar ne Funktion gebastelt die per SDL_Mixer .wav's abspielt aber ich bräuchte auch Unterstützung für andere Formate (am wichtigsten .mod's). Ich hab eigentlich kein Beispiel dazu in den Demos gefunden (nur Mixer) und mit google auch kein ordentliches Tutorial gefunden. In der Manual finde ich 10 versch. Befehle die alle irgendwie miteinander zusammenhängen und ich einfach nicht weiß was ich zuerst aufrufen soll. Könnte mir mal jemand bissel was dazu erklären oder nen guten Link rausrücken?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 17, 2006 17:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Also für MP3-Support brauchste, glaub ich, die MPEG-Library. Such dazu am besten mal nach sdl mixer mp3 oder so...

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 13:47 
Offline
DGL Member

Registriert: Di Aug 26, 2003 20:08
Beiträge: 81
Wohnort: Mönchengladbach
Programmiersprache: ObjPas ASM C C++ etc
Schau mal unter http://bero.0ok.de/page/index.php?p=24 :)

_________________
Behindert ist man nicht, behindert wird man.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 14:37 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Bist Du sicher, dass deine Lade-Routine in Ordnung ist und eine aktuelle Version von SDL_Mixer vorliegt? Laut Doku, sollte es zumindest neben Wave noch OGG, MP3, MOD und MIDI unterstützen, die allesamt ebenfalls über die Funktion Mix_LoadWav geladen werden können sollten. Der Name ist recht irreführend, aber hast Du das probiert? Fragst Du brav alle Fehlercodes ab, die zurückgegeben werden, vielleicht gibt einer davon aufschluss, was genau schief lief?

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 19:28 
Offline
DGL Member

Registriert: Mo Jan 09, 2006 17:31
Beiträge: 37
Danke für euere Antworten!

Phobeus hat geschrieben:
Bist Du sicher, dass deine Lade-Routine in Ordnung ist und eine aktuelle Version von SDL_Mixer vorliegt? Laut Doku, sollte es zumindest neben Wave noch OGG, MP3, MOD und MIDI unterstützen, die allesamt ebenfalls über die Funktion Mix_LoadWav geladen werden können sollten. Der Name ist recht irreführend, aber hast Du das probiert? Fragst Du brav alle Fehlercodes ab, die zurückgegeben werden, vielleicht gibt einer davon aufschluss, was genau schief lief?


Hmm also ich hab probiert mal .mp3 zu laden und denke schon dass ich korrekt Fehlercodes abfrage aber ich werde das nochmal testen. Der Name ist wirklich irreführend ^^

--
Also die Funktion funktioniert (SDL_Mixer) spielt aber nur WAV's, bei anderen Formaten kommt SDL-ErrorMeldung "Unrecognized Filetype(Not VOC)"
Code:
  1.  
  2.   procedure PlayWAV (file_name:string; loops: integer);
  3.   var wave: PMix_Chunk; audio_rate, audio_channels, audio_buffers: Integer; audio_format:word;
  4.     begin
  5.       audio_rate := MIX_DEFAULT_FREQUENCY;
  6.       audio_format := MIX_DEFAULT_FORMAT;
  7.       audio_channels := MIX_DEFAULT_CHANNELS;
  8.       audio_buffers := 4096;
  9.       if Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers) < 0 then SDL_ERROR;
  10.       wave := Mix_LoadWAV(PAnsiChar(file_name));
  11.       if wave = nil then SDL_ERROR;
  12.       Mix_PlayChannel(0, wave, loops);
  13.       if Mix_Playing(0) < 0 then SDL_ERROR;
  14.   end;


und das hier ist ungefähr das Beispiel in der Manual, nur kann ich nicht testen da Delphi bei desired.callback motzt: "Unterschiede in der Aufrufkonvention" :/
Code:
  1.  
  2.   procedure my_audio_callback( userdata : Pointer; stream : PUint8; len : integer );
  3.     begin
  4.   end;
  5.  
  6.   procedure Play (file_name:string);
  7.   var wav_spec: TSDL_AudioSpec; wav_length: UInt32; wav_buffer: PUInt8;   desired, obtained: PSDL_AudioSpec;  hardware_spec: PSDL_AudioSpec;
  8.     begin
  9.       desired := SDL_LoadWAV(PAnsiChar(file_name), @wav_spec, @wav_buffer, @wav_length);
  10.       obtained := SDL_LoadWAV(PAnsiChar(file_name), @wav_spec, @wav_buffer, @wav_length);
  11.       desired.freq := 22050;
  12.       desired.format := AUDIO_S16LSB;
  13.       desired.samples := 8192;
  14.       desired.callback:=my_audio_callback;
  15.       desired.userdata := nil;
  16.       if (SDL_OpenAudio(desired, obtained) < 0) then SDL_Error;
  17.       SDL_PauseAudio(0);
  18.   end;
  19.  


Ich habe übrigens keine Ahnung was das alles mit callback oder userdata (keine Erklärung in Manual steht nur(..) LOL) bedeuten soll! Ich wills auch nicht wissen solange ich endlich Sounds spielen kann.[/code]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 11:14 
Offline
DGL Member

Registriert: Mo Jan 09, 2006 17:31
Beiträge: 37
http://www.libsdl.org/projects/SDL_mixer/

hmm also .mod support sollte funktionieren, kommt aber die gleiche Fehlermeldung :roll: Ich werde mal die .ogg und die für .mp3 benötigten Librarys installieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 12:00 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Also in dem SDK-Beispiel nutze ich eine .XM und die klappt einwandfrei mit dem Abspielen. Allerdings verwende ich dafür auch die Funktion Mix_PlayChannel. Schaue Dir diese mal an und lasse mich wissen, ob es damit geht abzuspielen.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 12:34 
Offline
DGL Member

Registriert: Mo Jan 09, 2006 17:31
Beiträge: 37
Könntest du mir den Code für das Beispiel mal geben?

Mir is übrigens grad aufgefallen dass ich keine Manual von der SDL_Mixer hab. Gibts da was von den JEDI's [hab nix gefunden aber deren Homepage ist arg unübersichtlich]? Weil C Code nützt mir realtiv wenig.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 13:30 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Das Problem ist, dass selbst die Orginaldokumentation ziemlich dünn ist und IMAO auch bei uns im Wiki noch nichts in die Richtung dokumentiert wurde. Es ist daher weitesgehend nicht ganz leicht, zumindest das erlenen. Hat man erst einmal den Bogen raus, ist es eigentlich eine sehr einfache Sache. Daher solltest Du unbedingt C/C++ können. Die Sprache ist sehr ähnlich wie Pascal und hat man erst einmal die paar Unterschiede raus, weiß welche Funktionen man aufrufen muss und nimmt sich dazu den Header zur Hand, ist es auch für jemanden der nicht C programmiert hat einfach zu portieren.

Da ich mir aktuell nicht sicher bin, ob das SDL_Mixer-Beispiel es in unsere letzte DGLSDK geschafft hat und unsere SVN-Server aktuell offline sind, hänge ich das Beispiel, dass ich geschrieben habe mal an. Habe es bisher nur auf meinem Linux-System getestet und weiß daher nicht, ob es hier evtl. keine Probleme macht, weil Codecs oder Bibliotheken von Haus aus installiert sind. Allerdings erwarte ich nicht wirklich, dass es bei .xm oder .mod größere Probleme unter Windows gibt. Have a try!


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 15:51 
Offline
DGL Member

Registriert: Mo Jan 09, 2006 17:31
Beiträge: 37
1000 Dank, es funktioniert! :twisted:
Ich kann bereits PHP und das basiert ja auf C/C# und ich habe sowieso vor bald C und OpenGL zu lernen aber zuerst muss ich mal nen 2D SpaceShooter mit Delphi und SDL hinbekommen :wink:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 10:50 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Das sollte keine Aufforderung sein C zu lernen ;) Wenn Du PHP kannst und Dir eine Liste mit Datentypen neben dem Rechner legt und die "Pointerproblematik" kennst, dann "kannst" Du bereits C zumindest lesen. C# selbst hat IMAO übrigens mehr mit Delphi gemeinsam als C und C++ zusammen. Aber gut, immerschön zu sehen, dass der SDL_Mixer bei Dir geht... und ich endlich weiß, dass mein Sample auch nicht nur bei mir läuft ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 10:53 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wenn zu einem Thema unser Wiki noch unvollständig ist, wird euch niemand hindern, das Wiki zu vervollständigen. (Das ging jetzt nicht gegen Phob, sondern war allgemein gültig.) Also falls ihr euch selbst Quellen besorgt und der Meinung seid wie z.B. eine SDL-Funktion funktioniert, dann guckt mal ins Wiki, ob ihr dort euer wissen nicht für andere hinterlegen könnt.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 20, 2006 22:13 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Flash hat geschrieben:
Wenn zu einem Thema unser Wiki noch unvollständig ist, wird euch niemand hindern, das Wiki zu vervollständigen. (Das ging jetzt nicht gegen Phob, sondern war allgemein gültig.) Also falls ihr euch selbst Quellen besorgt und der Meinung seid wie z.B. eine SDL-Funktion funktioniert, dann guckt mal ins Wiki, ob ihr dort euer wissen nicht für andere hinterlegen könnt.

lol! Ich hätte wetten können, dass entweder Flash, Flo oder i0n0s das sagt ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 21, 2006 21:47 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nun - etwas Konstanz im Forum kann nicht schaden. 8)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 14 Queries | GZIP : On ]