Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mo 25.11.02 22:31 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Di 26.11.02 15:12 
ausblenden 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Di 26.11.02 15:15 
nachtrag:

SND_PURGE
unterbricht schleifen
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 26.11.02 21:51 
So einfach ?
ich dachte das währe schwere,
danke ich werde es gleich mal austesten ;)

MFG
mimi
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 26.11.02 22: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Di 26.11.02 23: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 26.11.02 23: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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 997



BeitragVerfasst: Mi 27.11.02 00: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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Mi 27.11.02 21: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