| |
|
|
Nico Madysa | Um ein Gerät nutzen zu können, muss man es öffnen. Hierbei gibt es einige Wichtigkeiten zu beachten. Denn nicht jedes Gerät lässt sich auf dieselbe Weise öffnen.
Einfache Geräte öffnen
Bevor man ein Gerät nutzen kann, muss es erst initialisiert werden, wozu der open-Befehl dient. Einfache Geräte sind beispielsweise CDAudio und Videodisc.
open Device [shareable] [alias alias] Parameter Beschreibung ------------------------------------------------------DeviceDer Geräte-Type, z.B. CDAudio shareablesiehe hier aliassiehe hier -----------------------------------------------------
Das folgende Beispiel öffnet eine Audio-CD unter dem Alias myCD und spielt diese ab. MCISend$("open cdaudio alias mycd") MCISend$("play mycd")
Übrigens!: CDAudio und VideoDisc lassen sich auch als komplexe Geräte öffnen. Dazu ist, anstatt einem Dateinamen das CD-Laufwerk anzugeben, z.B. MCISend$("open H: type cdaudio alias mycd")
Komplexe Geräte öffnen
Bevor man eine Datei nutzen kann, muss sie erst initialisiert werden, wozu der open-Befehl dient. Komplexe Geräte sind z.B. WaveAudio und Sequencer. Bei komplexen Geräten werden einzelne Elemente, also Dateien genutzt. Es gibt drei Wege, ein komplexes Gerät zu nutzen: - Man gibt lediglich das Gerät an. Man kann dann nur Befehle wie capability,sysinfo oder close nutzen. z.B. MCISend$("sysinfo waveaudio quantity open") - Man gibt nur den Dateinamen an. Das Gerät ermittelt die MCI durch die Sektion [mci extensions] der WIN.INI. z.B. MCISend$("open C:MyMusicTestA.wav alias test") - Man gibt Gerät und Element(=Datei-) an. In dem Falle ignoriert die MCI die Einträge in der WIN.INI. z.B. MCISend$("open C:MyMusicTestA.wav type sequencer alias test")
oder MCISend$("open C:MyMusicTestB.mid type sequencer alias test")
Die Sektion [mci extensions] der WIN.INI könnte so aussehen: [mci extensions] wav=waveaudio mid=sequencer rmi=sequencer mp3=mpegvideo
Die komplexeste Version: open Datei [shareable] [type Device] alias aliasoder open Device-Typ!Datei [shareable] alias alias
Parameter Beschreibung --------------------------------------------------------------------------------------------------------- DateiName der zu öffnenden Datei mit Pfad shareablesiehe hier DeviceDas Gerät, z.B. MPEGVideo aliassiehe hier
Achtung!:
Da in langen Dateinamen(ab 32-Bit-Windows) Leerzeichen vorkommen können, die die MCI als Parameter-Trennung interpretiert, sollten Pfade, Strings, etc. die Leerzeichen enthalten KÖNNEN, mit Anführungszeichen eingeschlossen werden oder mittels @ShortName$() geschreddert werden. Ab XProfan8 ist das das Ersatzzeichen "q", davor ist Chr$(34) zu verwenen. Bei declare mci$ mci$ = "C:\MyMusic\TestA.wav" mci$ = "open waveaudio!" + mci$ + " alias test" mci$ = MCISend$(mci$) case %MCIError : MessageBox(mci$,"",0) MCISend$("close all") würde die MessageBox einen Fehler ausgeben. In diesem Code
declare mci$ mci$ = ShortName$("C:\MyMusic\TestA.wav") mci$ = "open waveaudio!" + mci$ + " alias test" mci$ = MCISend$(mci$) case %MCIError : MessageBox(mci$,"",0) MCISend$("close all") dürfte dagegen alles klappen. Meine Empfehlung: Da die !-Form keine andere Wirkung hat als die Anderen, empfehle ich auf die Standart-Form, also open-type-alias zurückzugreifen. Sollten Sie allerdings in ihrer Anwendung (vielleicht wegen anderen Problemen mit langen Dateinamen?) Pfade grundsätzlich mit ShortName$() schreddern, können Sie die !-Form getrost verwenden.
Achtung!: ShortName$() funktioniert nur bei tatsächlich existenten Dateien und Pfaden.
------------------------------------------------------ Abspielen:
MCISend$("play A [from S] [to E]")
A: Alias, Gerät oder all from S: Das Abspielen beginnt an der Position S. Fehlt dieser Parameter, startet das Abspielen an der aktuellen Position. to E: Das Abspielen endet bei der Position E Fehlt dieser Parameter, endet das Abspielen am Ende der Datei oder beim nächsten stop-Befehl.
------------------------------------------------------ Pausieren/Stoppen:
MCISend$("pause <Gerät>") , MCISend$("resume <Gerät>") und MCISend$("stop <Gerät>")
Pause hält das Abspielen/Aufnehmen einer Datei an, es lässt sich mit resume wieder fortsetzen. Stop hingegen beendet das Abspielen wirklich. Stoppen hat nichts mit schließen zu tun. Geschlossen wird ein Gerät mit MCISend$("close <Gerät>").
Das sind nur die grundsätzlichsten Befehle. Konkreteres und noch viel mehr findet ihr in der MCI.hlp.
|
|
|
| |
|
|