- 締切済み
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を同じフォルダ内に入れているにも関わらず全く音が鳴りません。どこが間違っているのでしょうか。教えてください。宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- korin_
- ベストアンサー率69% (46/66)
"sample" となっている部分を、"MediaFile" に変えて試してみてください。
- SAYKA
- ベストアンサー率34% (944/2776)
とりあえずwindowsMediaPlayerでmidiは鳴る? WMPで鳴るのならdeviceを「MPEGVideo」を指定してやってみて。 http://www.google.com/search?lr=lang_ja&q=mcisendstring%20midi
お礼
回答有難うございます。 windouwsmediaplayerではなります。 手探りでやってるものでよく分らないのですが、デバイスの指定とは Call mciSendString("open " & P & " alias sample type MPEGVideo", vbNullString, 0, 0) 上のようにすれば良いのでしょうか? このようにやっても音はなりませんでした。
お礼
回答有難うございます 色々試しているうちになるようになりました。