Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ermitteln ob Sound noch abgespielt wird (https://www.delphipraxis.net/149579-ermitteln-ob-sound-noch-abgespielt-wird.html)

mz23 24. Mär 2010 14:43


Ermitteln ob Sound noch abgespielt wird
 
Liebe DP Gemeinde,

ich habe folgendes Problem, für das ich eine Lösung suche.

In meinem Programm gibt es einen Button, der beim Anklicken
eine WAV-Datei abspielt. Diese Datei ist etwas länger, und
so habe ich mir gedacht, daß es nett wäre, wenn sich beim
Anklicken die Caption des Buttons ändert, also aus
"Abspielen" wird "Abspielen Anhalten".

Bis dahin so gut, das ist mir alles klar.
Jetzt kommt aber das eigentliche Problem hinzu und zwar,
wenn die WAV-Datei abgespielt wurde, also fertig ist, steht
der Caption des Buttons weiterhin auf "Abspielen Anhalten".

Frage: Wie kann ich feststellen, ob z.B. die Datei "123.WAV"
noch abgespielt wird, oder schon fertig ist?

Ich verwende momentan folgenden Code dazu:
Delphi-Quellcode:
uses mmSystem;
var sdN : string;
...
sdN:='123.WAV';
sndPlaySound(PChar(sdN),SND_ASYNC);
...
Um das Abspielen anzuhalten, wenn man also den Button
erneut drückt, setze ich als WAV-Datei einen Namen ein,
den es nicht gibt, z.B: '123_.WAV', dann stoppt das,
wenn ich SND_ASYNC als Parameter verwende.

Als Lösung habe ich mir schon gedacht, daß ich vor dem
Abspielen aus der '123.WAV' Datei die Spiellänge ermittle
und dann nach Ablauf dieser Zeit den Button Caption
automatisch auf "Abspielen" zurücksetze, aber irgendwie
muß es doch eine elegantere Lösung geben?

Ich danke für Eure Geduld und verbleibe
mit freundlichen Grüßen aus Nürnberg,
Manfred Zenns

lbccaleb 24. Mär 2010 16:13

Re: Ermitteln ob Sound noch abgespielt wird
 
Zitat:

Zitat von mz23
... aber irgendwie
muß es doch eine elegantere Lösung geben?

Ja spiele die wav-Datei mit Hilfe einer Sound Ausgabe Komponente ab, wie Direct Sound, DSPack, Audorra oder der Bass.dll

Da kannst du auch überall kontrollieren ob die Datei noch spielt oder nicht.

patti 24. Mär 2010 18:12

Re: Ermitteln ob Sound noch abgespielt wird
 
Oder auch die TMediaPlayer-Komponente, die sollte nämlich bei Delphi schon dabei sein. Da sollte das OnNotify-Ereignis ausgelöst werden, sobald die Datei abgespielt wurde.

mz23 25. Mär 2010 16:03

Re: Ermitteln ob Sound noch abgespielt wird
 
Vielen, vielen Dank für die Tipps!
Werde ich gleich ausprobieren.
MfG Manfred Zenns

lbccaleb 25. Mär 2010 21:00

Re: Ermitteln ob Sound noch abgespielt wird
 
Wie es über Direct Sound geht, kannst du dir hier ansehen:

Direct Sound Player

mz23 19. Dez 2010 09:15

AW: Re: Ermitteln ob Sound noch abgespielt wird
 
Zitat:

Zitat von lbccaleb (Beitrag 1009822)
Wie es über Direct Sound geht, kannst du dir hier ansehen:

Direct Sound Player

Oh, vielen Dank, das löst bestimmt eine ganze Menge
Fragen, die ich in Bezug auf Hilfetexte abspielen in
einem Programm habe.

MfG, Manfred Zenns


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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