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 或商业 3rd Party Library)?

奖励,如果该方法支持从特定位置播放文件(如您所见,上面的代码支持它)

4

1 回答 1

1

这可能有效;调用&设置所需的播放设备的 ID mciSendCommand()MCI_SETMCI_WAVE_SET_PARMSwOutput

  • 你可以IDDevice通过mciSendCommand()mciGetDeviceID("waveaudio")
  • 它不是 100% 清楚wOutput想要什么,它可能与返回的 ID 相同waveOutGetDevCaps()
于 2012-06-10T12:56:54.083 回答