投稿者 zakiYoshi  (高校生) 投稿日時 2013/5/4 17:38:13
はじめまして。

最近、mcisendstring について調べている中で、役に立ちそうなことがいくつか見つかったので、
ここで投稿しておきます。

(1)mcisendstring で同時再生ができる。

 そもそも、mcisendstring は同時再生ができるようです。
 方法としては単に、別のエイリアスを使うだけです。
 

Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
        (ByVal LpstrCommand As StringByVal LpstrReturnString As String, _
         ByVal uReturnLength As IntegerByVal HWndCallback As IntegerAs Integer

Public Sub Play()

    ' 再生するファイルを「sound1」「sound2」というエイリアス(別名)で開く。 
         mciSendString("open " & "(再生するファイルのパス)" & " alias sound1"Nothing , 0 , 0 )
         mciSendString("open " & "(再生するファイルのパス)" & " alias sound2"Nothing , 0 , 0 )

         mciSendString("play sound1"Nothing , 0 , 0 )
         mciSendString("play sound2"Nothing , 0 , 0 )

End Sub
 (VB2010, .wav ファイルでテスト済み。)

(2)再生などの終了時にコールバック(終了通知)を受け取れる。

 これは、NativeWindow クラスの継承を活用して実現できます。ここでは、紹介にとどめておきます。