Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Midit soimaan automaattisesti

Sivun loppuun

tekojalka [04.01.2004 21:08:06]

#

miten saan MIDI:n soimaan automaattisesti Visual Basicilla?

remontti-reiska [04.01.2004 21:45:56]

#

https://www.ohjelmointiputka.net/koodivinkit/23431-vb6-midi-tiedoston-soittaminen katsoppas tuo.

tekojalka [04.01.2004 23:02:13]

#

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

Antti Laaksonen [04.01.2004 23:04:32]

#

Kirjoita MIDI-tiedoston koko hakemistopolku.

tekojalka [04.01.2004 23:05:24]

#

?? Mikä hakemis polku? en pysy mukana? katos kun oon aika alottelija.. :)

Blaze [04.01.2004 23:08:53]

#

lainaus:

?? Mikä hakemis polku? en pysy mukana? katos kun oon aika alottelija.. :)

Hakemistopolku. c:\kivat fileet\hienot midit\terminator2.mid

tekojalka [04.01.2004 23:12:12]

#

mihin se koodi pitää pistää?

Blaze [04.01.2004 23:17:42]

#

lainaus:

mihin se koodi pitää pistää?

Mieti sitä.
Olisko tuo kohta, missä sulla nyt lukee pelkkä terminator2.mid mitään?

Antti Laaksonen [04.01.2004 23:17:51]

#

No tietenkin siihen kappaleennimen paikalle. :) Eli

SoitaMIDI "c:\kirjoita\tähän\omasi\terminator2.mid", "biisi"

Bill Keltanen [05.01.2004 10:33:21]

#

no olet kyllä aika aloittelija!

tekojalka [05.01.2004 11:01:40]

#

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

kenkku [05.01.2004 16:34:56]

#

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

Antti Laaksonen [05.01.2004 19:59:23]

#

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"

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta