Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Soundwiedergabe "überlappt" sich (https://www.delphipraxis.net/143062-soundwiedergabe-ueberlappt-sich.html)

Spezi 9. Nov 2009 08:54


Soundwiedergabe "überlappt" sich
 
Hallo Delphi-Praktiker :P,

Ich bin dabei ein, noch sehr simples, Tower Defense - Spiel zu programmieren.
Nun möchte ich auch einen Sound wiedergeben, wenn ein Turm schiesst.

Das Problem ist, dass wenn ich viele Schüsse in kurzer Zeit habe, sich die Wiedergabe überschneidet.

Momentan realisiere ich das mit
Delphi-Quellcode:
SndPlaySound('shot.wav',SND_ASYNC);
und der Unit mmSystem.

Da sich aber die Wiederhabe überschneidet habe ich versucht, dass ich eine Art Prüfvariable einsetze, die ich bei Abspielen des Sounds auf true setze, und den nächsten Sound nur abspiele, wenn sie false ist.

Da stellt sich mir aber nur die Frage, wie ich prüfen kann, ob der Sound abgespielt nicht mehr wird, um somit die Variable auf false zu setzen.

Oder gibt es vielleicht eine Möglichkeit, dass ich diesen Sound eine bestimmte Zeit lang wiederhole, und erst mit dem Abspielen aufhöre, wenn keine Schüsse mehr abzuspielen sind?

MfG
Spezi

himitsu 9. Nov 2009 08:59

Re: Soundwiedergabe "überlappt" sich
 
SND_ASYNC sagt, daß die Prozedur sofort zurückkehren und der Sound im Hintergrund ablaufen soll.

Wenn das aber nicht passieren soll, dann mußt du demnach einen anderen Parameter angeben.

Spezi 9. Nov 2009 12:43

Re: Soundwiedergabe "überlappt" sich
 
Was gibt es denn noch an Parametern?

SND_SYNC spielt ja den Sound ab, und kehrt dann zurück.
Da ist aber das Problem, dass das Programm ja quasi "hängt", da sich die Einheiten nicht bewegen, solange der Schuss gespielt wird.

himitsu 9. Nov 2009 12:53

Re: Soundwiedergabe "überlappt" sich
 
MSDN-Library durchsuchensndPlaySound

SND_SYNC wäre es vom verhalten, aber wenn du es Asynchron laufen lassen willst,
und sich dennoch nichts überlagern soll, dann wirst du dieses selber steuern müssen.

- alten Sound abbrechen
- warten, bis der alte Sound fertig ist und erst dann beginnen
- ... oder was auch immer

turboPASCAL 9. Nov 2009 17:20

Re: Soundwiedergabe "überlappt" sich
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich denke wenn man es etwas realer betrachten will muss man sie Sounds mixen.
Das ist aber nicht mit PlaySound realisierbar, da muss man schon "professioneller" ran.

Spezi 9. Nov 2009 18:48

Re: Soundwiedergabe "überlappt" sich
 
Hmm, ok.

Kannst du mir vielleicht auch einen Link zu einem Tutorial der Bass.dll liefern?

Die Hilfedatei finde ich nicht so aufschlussreich, zumal ich dort auch nicht gefunden habe, wie man die Bass.dll überhaupt in Betrieb nimmt.
Google war auch weniger erfolgreich :?

Und das MP3-Player-Beispiel vom Delphi-Treff, finde ich, wäre die Notlösung, da er mir nicht so zusagt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz