Entwickler-Ecke
Multimedia / Grafik - Soundproblem, kriegs nicht hin
Delphianer23 - Fr 14.03.03 19:05
Titel: Soundproblem, kriegs nicht hin
Ich hab schon mehere Beiträge gelesen, doch kann sie nicht umsetzen. Ich will mehrere Sounddateien gleichzeitig abspielen, so dass sie sich überlagern.
Wie mach ich das? Mit playsound hab ichs nicht hingekriegt.
BITTE ein Beispiel geben.
Moderiert von
Tino: Absätze entfernt.
toms - Fr 14.03.03 19:10
Vielleicht so:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| // Autor: Genival P.Carvalho
uses MMSystem;
procedure SendMCICommand(Cmd: string); var RetVal: Integer; ErrMsg: array[0..254] of char; begin RetVal := mciSendString(PChar(Cmd), nil, 0, 0); if RetVal <> 0 then begin {get message for returned value} mciGetErrorString(RetVal, ErrMsg, 255); MessageDlg(StrPas(ErrMsg), mtError, [mbOK], 0); end; end;
procedure TForm1.Button1Click(Sender: TObject); begin SendMCICommand('open waveaudio shareable'); SendMCICommand('play "C:\xyz\BackgroundMusic.wav"'); SendMCICommand('play "C:\xyz\AnotherMusic.wav"'); SendMCICommand('close waveaudio'); end; |
Delphianer23 - Fr 14.03.03 20:07
danke, doch es funktioniert nur einmal. Beim nächsten starten nicht ... Was soll das?
Es wäre außerdem besser, wenn man einfach an etwas seine sounddateinen "schickt" und die dann IMMER ausgeführt werden, egal wie viele noch laufen usw.
Irgendnw Idee?
Moderiert von
Tino: Absätze entfernt.
tommie-lie - Fr 14.03.03 20:22
schau mal bei den Tutorials. Da gibt's eins von mir über Soundwiedergabe direkt über die Multimedia API von Windows. Da kannst du so viele mmstreams und Sounddevices öffnen, wie du Lust hast, wird alle paralel abgespielt (zumindest wird dies versucht, sofern der Speicher ausreicht...).
edit:
Ist aber ein relativ komplexes Thema, innerhalb von 5 Minuten ist nicht mit befriedigenden Ergebnisssen zu rechnen, aber die mmstreams von Windows helfen schon arg beim zerdröseln der Header.
blackbirdXXX - Mi 19.03.03 12:03
Das habe ich auch lange versucht und eine Lösung gefunden:
erstelle einen MediaPlayer auf deinem Formular. Stelle das Visible Tag auf false; gib dem MediaPlayer einen guten Namen (z.B.: Player1). Wenn du nun den Sound abspielen willst geht das dann so:
Quelltext
1: 2: 3:
| Player1.Filename := 'demo.mp3'; Player1.Open; Player1.Play; |
Das kannst du mit so vielen MPLAyer machen wie du willst. Die einzige Beschlänkung ist das die Soundkarte full-duplex fähig sein muss. Das sind sie allerdings schon serienmäsig!
Ich hoffe das ich helfen konnte[/code]
mimi - Mo 24.03.03 00:14
nimm doch die FMod-lib damit geht das gans einfach und du hast 10-20* verschiende sound formate
*
habe noch nicht gezählt aber es sind sehr viele;)
Wenn man es mit der MediaPlayer komponenten vergleicht :)
Adrian - Mo 24.03.03 12:35
Titel: Multi-Sound
Hallo,
habe mal folgendes geschrieben:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| uses MMSystem, MPlayer;
procedure TForm1.Button1Click(Sender: TObject); begin Player1.FileName:='Test1.wav'; Player1.Open; Player1.Wait:=false; Player1.Play; PlaySound('Test2.wav', 0, SND_FILENAME); end; |
Damit kamen die 2 Dateien gleichzeitig raus. Vielleicht hilft Dir so was.
Gruß,
Adrian
mimi - Mo 24.03.03 18:43
vileicht hatte er ja auch schon ne antwort..... auf diese Frage...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!