【问题标题】:How to play audio via a specific sound card?如何通过特定的声卡播放音频?
【发布时间】:2012-06-13 02:09:40
【问题描述】:

我需要从 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)?

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

【问题讨论】:

    标签: audio vb6


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 2020-05-23
      相关资源
      最近更新 更多