miten saan MIDI:n soimaan automaattisesti Visual Basicilla?
ei pysty soittaan ei alota koko soittamista tolla koodilla
Moduuli...
Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Sub SoitaMIDI(tiedosto As String, alias As String) Dim x As Long x = mciSendString("open " + tiedosto + " type sequencer alias " + alias, 0&, 0, 0) x = mciSendString("play " + alias, 0&, 0, 0) End Sub Sub SuljeMIDI(alias As String) Dim x As Long x = mciSendString("close " + alias, 0&, 0, 0) End Sub
formi..
Private Sub Form_Load() SoitaMIDI "terminator2.mid", "biisi" End Sub Private Sub Form_Unload(Cancel As Integer) SuljeMIDI "biisi" End Sub
Kirjoita MIDI-tiedoston koko hakemistopolku.
?? Mikä hakemis polku? en pysy mukana? katos kun oon aika alottelija.. :)
lainaus:
?? Mikä hakemis polku? en pysy mukana? katos kun oon aika alottelija.. :)
Hakemistopolku. c:\kivat fileet\hienot midit\terminator2.mid
mihin se koodi pitää pistää?
lainaus:
mihin se koodi pitää pistää?
Mieti sitä.
Olisko tuo kohta, missä sulla nyt lukee pelkkä terminator2.mid mitään?
No tietenkin siihen kappaleennimen paikalle. :) Eli
SoitaMIDI "c:\kirjoita\tähän\omasi\terminator2.mid", "biisi"
no olet kyllä aika aloittelija!
Private Sub Form_Load() SoitaMIDI "C:\Program Files\Microsoft Visual Studio\VB98\Hakkeri\Terminator2.mid", "biisi" End Sub Private Sub Form_Unload(Cancel As Integer) SuljeMIDI "biisi" End Sub
ei ala soimaan tolla koodilla
Private Sub Form_Load() SoitaMIDI app.path & "Terminator2.mid", "biisi" End Sub
Kokeiles tolla.. En päässy testaamaan koska koneelta ei löytyny yhtään midiä :D
Muistaakseni joissakin Windowseissa hakemiston ja tiedoston nimi täytyy jostain kumman syystä ilmoittaa lyhyessä muodossa (tarvittaessa matomerkkien kera), jos käytetään mciSendString-funktiota. Onneksi tätä lyhyttä nimeä ei tarvitse muodostaa itse. Kirjoita formiin seuraavaa:
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long Function LyhytNimi(tiedosto As String) Dim x As Long, lnimi As String lnimi = Space(255) x = GetShortPathName(tiedosto, lnimi, 255) LyhytNimi = Left(lnimi, x) End Function
Sitten kutsu SoitaMIDI-aliohjelmaa seuraavaan tapaan:
SoitaMIDI LyhytNimi("C:\Program Files\Microsoft Visual Studio\VB98\Hakkeri\Terminator2.mid"), "biisi"
Aihe on jo aika vanha, joten et voi enää vastata siihen.