Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi mciSendString - wie Ausgabe anhalten? /wie notify auswerten? (https://www.delphipraxis.net/144340-mcisendstring-wie-ausgabe-anhalten-wie-notify-auswerten.html)

mcmichael 5. Dez 2009 18:11


mciSendString - wie Ausgabe anhalten? /wie notify auswerten?
 
Hallo Experten,

nachdem ich mir einiges nützliches Wissen aus diesen Forum angesammelt habe kann
ich nun gleichzeitig mehrere Audiodateien ausgeben und auch eine Benachrichtigung
einschalten wenn die Ausgabe beendet ist.


Delphi-Quellcode:
SendMCICommand('open waveaudio shareable');
SendMCICommand('open "b.mp3"');
SendMCICommand('play "b.mp3" notify');
SendMCICommand('open "a.wav"');
SendMCICommand('play "a.wav" notify');
Benachrichtigung:
Delphi-Quellcode:
procedure TForm1.MMNotify(var Message: TMessage);
begin
ListBox1.Items.Add('Fertig um '+TimeToStr(now));
end;
Die Benachrichtigung klappt. Aber wie stelle ich fest, welche
der vielen Audiodateien nun gerade beendet wurde?


Anhalten:
Delphi-Quellcode:
SendMCICommand('stop "b.mp3"');
hiermit kann ich explizit die Ausgabe von b.mp3 anhalten.
Aber wie kann ich einfach alle derzeit ausgegebenen Audiodateien anhalten?
Bei Beendigung des Programms werden alle angehalten.
Stop oder Close funktionieren m.E. nur mit Nennung einer expliziten Datei
oder Aliasnamen der sich auf eine Datei bezieht...

Hat jemand eine Idee?

EWeiss 6. Dez 2009 10:44

Re: mciSendString - wie Ausgabe anhalten? /wie notify auswer
 
Versuchs doch mal mit dem schließen ...

SendMCICommand('dein geöffnets Device', MCI_CLOSE, MCI_WAIT, 0)

gruss

mcmichael 6. Dez 2009 11:35

Re: mciSendString - wie Ausgabe anhalten? /wie notify auswer
 
Das geht so zumindest nicht:

Zitat:

Delphi-Quellcode:
SendMCICommand('dein geöffnets Device', MCI_CLOSE, MCI_WAIT, 0)


MCISendstring erwartet als zweiten parameter ein PWideChar.

und etwas in der Sorte:

Delphi-Quellcode:
mciSendString('waveaudio shareable', nil,MCI_CLOSE, 0);
führt zu nichts. (Auch zu keinem Fehler)

EWeiss 6. Dez 2009 12:25

Re: mciSendString - wie Ausgabe anhalten? /wie notify auswer
 
Keine ahnung was du da machst
MCI_OPEN_PARMS gibt dir als ElementName einen string zurück bzw.. ist als solcher definiert.
und gibt dir einen Integer zurück wenn der Aufruf erfolgreich
Meininteger := mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE Or MCI_OPEN_ELEMENT, mciOpenParms)

Du öffnst doch das MCI (initialisierst es)
Mit den gleichen parametern kann man es auch wieder schließen das beendet bei mir ALLE laufende MusikTitel oder Videos.
Ich hab keine probleme aber das wird dir nicht weiterhelfen denk ich mal.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.

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