Entwickler-Ecke
Multimedia / Grafik - sndPlaySound
mimi - Mo 25.11.02 21:31
Titel: sndPlaySound
Hallo,
wie kann ich schaun ob gerade ein sound über die soundkarte gespielt wird ich herzeuge denn sound mit "sndPlaySound"
Kennt da jemmand eine EINFACHE und SCHNELLE lösung für ?
die MediaPlayer komponenten möchte ich nicht nutzen bzw ich kann sie nicht nutztn für diesen zweck weil ich denn sound nämlich in einer unit erzeuge und da habe ich sowas nicht da ich habe auch schon versucht die MediaPlayer kompo manuel zu erzeugen habe ich aber nicht geschaft ;);)
Bitte gleich mit beispiel,weil ich nutzt zum ersten mal "sndPlaySound" in meinem programm bzw in einer unit ;)
MFG
mimi
Andreas Pfau - Di 26.11.02 14:12
Quelltext
1:
| sndPlaySound(PChar('C:\Sounds\Sound.wav'), Snd_Async); |
Hier wird der Sound Asnychron abgespielt, d.h. Das Programm wird nicht blockiert. Hier alle Parameter:
SND_ASYNC
Wie schon gesagt, asynchron
SND_LOOP
In Schleife abspielen
SND_MEMORY
aus RAM spielen (der erste Parameter ist dann die adresse)
SND_NODEFAULT
solltest du immer verwenden. Wenn dieses flag nicht gesetzt ist, wird er standard-fehlersound abgespielt, wenn die datei nicht gefunden wird.
SND_NOSTOP
wenn bereits was gespielt wird, abbrechen
SND_SYNC
synchron abspielen
zum überprüfen machst du felgendes:
Quelltext
1: 2: 3: 4:
| function playing:boolean; begin result := not sndPlaySound(nil, Snd_memory or snd_nostop); end; |
(hab's noch nicht so arg auspobiert... ich weiß nicht, ob's immer das richtige ergebnis liefert)
Andreas Pfau - Di 26.11.02 14:15
nachtrag:
SND_PURGE
unterbricht schleifen
mimi - Di 26.11.02 20:51
So einfach ?
ich dachte das währe schwere,
danke ich werde es gleich mal austesten ;)
MFG
mimi
mimi - Di 26.11.02 21:06
Ich habe ein Menu mit DX gemacht und mit der Maus kann man makiern nun makiert man zu schnell gibt es sound Störer ;)
gibt es nicht noch eine andre möglichkeit ?
als ich das mit MediaPlayer1.Mode gemacht habe hat alle funktioniert aber jetzt mit Snd.... geht es nicht mehr so wie führer.
MFG
mimi
Andreas Pfau - Di 26.11.02 22:13
wie jetzt genau? was bewirkt deine auswahl? werden dabei neue sounds abgespielt? wie äußern sich die "störer", knackst es, wird die ausgabe unterbrochen? arbeitest du mit asynchronen sounds? und was ist mit "DX" gemeient (DelphiX oder DirectX)?
na ja, es gibt noch die möglichkeit über hi-level und low-level audio. beim hi-level musst du über MciSendCommand befehle schicken, da kenn ich mich nich so aus... über low-level is das noch komplizierter, da musst du soweit ich weiß die header und chunks einzeln aus den dateien lesen. da müsste jemand anderes helfen, sorry...
mimi - Di 26.11.02 22:23
soll ich dir mal das menu senden ? ich habe das menu in einer unit gepackt damit ich es einfacher habe es zu benutzen ;)
das klickt so also ob es zu früh gestoppt wird. Wie mach das denn der MediaPlayer mit Mode ? also mpStoppen oder wie war das noch ? wie kann er das machen ?
Andreas Pfau - Di 26.11.02 23:06
senden kann nicht schaden.
wie man sounds stoppt? mit "sndPlaySound(Nil, Snd_Purge);", genauso wie man schleifen stoppt.
also, wenn ich das richtig verstanden habe, ist die systemauslastung durch das menü so hoch, dass der sound überlastet ist und knackst. ich glaube, mit mci bist du besser dran. aber wie gesagt, da kann ich nicht allzu sehr helfen.
mimi - Mi 27.11.02 20:29
Dann sende mir mal ne mail damit ich deine e-mail habe meine ist
mimi_17@web.de
ich habe auch einen Server vo meine HP drauf ist doch leider musste ich windows neu installieren und da habe ich vergessen das passwird zu sichern also muss ich warten biss ich es wieder habe ;)
ne stoppen will ich ja gerade nicht;)
was ich nur will ist:
mediaplayer1.mode <> mpPlaying then Spiel denn Sound
wie geht das am besten, die funktion die hier vorgestellt wurde hat nicht so funktioniert wie ich es mir vorgestellt habe ;)
MFG
mimi
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!