如何通过特定的声卡播放音频?

时间:2012-06-09 05:28:07

标签: audio vb6

我需要从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或商业第三方图书馆)?

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

1 个答案:

答案 0 :(得分:1)

这可能有用;使用mciSendCommand()&amp;拨打MCI_SET MCI_WAVE_SET_PARMSwOutput设置为所需的播放设备ID。

  • 您可以通过IDDevice
  • 获取mciSendCommand()的{​​{1}}
  • 它不是100%清楚mciGetDeviceID("waveaudio")想要什么,它可能与wOutput
  • 返回的ID相同