• 締切済み

midi再生について

visual basicを使ってゲームを作成しております。 あるサイトを見てmidiの再生をやってみようと下記のコードを入力しました。 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 Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMillsecounds As Long) Sub MCI_Test() Dim P As String, filename As String filename = "sample.mid" P = """" & ActiveWorkbook.Path & "\" & filename & """" Call mciSendString("open " & P & " alias sample", vbNullString, 0, 0) DoEvents Call mciSendString("play sample from 0", vbNullString, 0, 0) Call Sleep(10000) Call mciSendString("close sample", vbNullString, 0, 0) End Sub このコードでfilenameの部分を変更しwavファイルのsample.wavやMP3ファイルのsample.mp3は再生する事ができました。しかし、midiファイルはsample.midを同じフォルダ内に入れているにも関わらず全く音が鳴りません。どこが間違っているのでしょうか。教えてください。宜しくお願い致します。

みんなの回答

  • korin_
  • ベストアンサー率69% (46/66)
回答No.2

"sample" となっている部分を、"MediaFile" に変えて試してみてください。

sasirogi
質問者

お礼

回答有難うございます 色々試しているうちになるようになりました。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

とりあえずwindowsMediaPlayerでmidiは鳴る? WMPで鳴るのならdeviceを「MPEGVideo」を指定してやってみて。 http://www.google.com/search?lr=lang_ja&q=mcisendstring%20midi

sasirogi
質問者

お礼

回答有難うございます。 windouwsmediaplayerではなります。 手探りでやってるものでよく分らないのですが、デバイスの指定とは Call mciSendString("open " & P & " alias sample type MPEGVideo", vbNullString, 0, 0) 上のようにすれば良いのでしょうか? このようにやっても音はなりませんでした。

関連するQ&A