1

Visual Basic 6アプリケーションからサウンド(.WAVファイル)を再生する必要があります。ただし、PCには複数のサウンドカードが搭載されており、ユーザーはそれを使用できるはずです。

これまで、デフォルトのサウンドカードがサポートされていたので、次のようなサウンドを再生しました。

CommandString = "Open " & Chr$(34) & mstrFilename & Chr$(34) & " type waveaudio alias MediaFile"
mciSendString CommandString, vbNullString, 0, 0&

If PlayFromPercent <= 0 Then
    CommandString = "play MediaFile"
    lngRetcode = mciSendString(CommandString, vbNullString, 0, 0&)
Else
    CommandString = "play MediaFile from " & CLng(lngLength * (PlayFromPercent / 100))
    lngRetcode = mciSendString(CommandString, vbNullString, 0, 0&)
End If

このコードを特定のサウンドカードに適合させる方法はありますか、それとも別のアプローチ(DirectXや商用のサードパーティライブラリなど)を使用できますか?

ボーナス、アプローチが特定の位置からのファイルの再生をサポートしている場合(ご覧のとおり、上記のコードはそれをサポートしています)

4

1 に答える 1

1

これはうまくいくかもしれません。呼び出しmciSendCommand()て、目的の再生デバイスのIDに設定しMCI_SETます。MCI_WAVE_SET_PARMSwOutput

  • あなたはIDDevice経由mciSendCommand()することができますmciGetDeviceID("waveaudio")
  • wOutputが欲しいのか100%明確ではなく、おそらくによって返されるのと同じIDですwaveOutGetDevCaps()
于 2012-06-10T12:56:54.083 に答える