| |
|
|
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 File 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 File 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 potuto so aussehen: [mci extensions] wav=waveaudio mid=sequencer rmi=sequencer mp3=mpegvideo
Die komplexeste Version: open File [shareable] [type Device] alias aliasoder open Device-Typ!File [shareable] alias alias
Parameter Beschreibung --------------------------------------------------------------------------------------------------------- FileName der zu öffnenden File 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") potrebbe 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 File 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 File 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 File 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.
|
|
|
| |
|
|