2012-06-09 65 views
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或商業第三方庫)?

獎金,如果該方法支持播放從特定位置的文件(你可以看到,上面的代碼支持的話)

回答

1

這可能工作;撥打mciSendCommand()MCI_SET & MCI_WAVE_SET_PARMSwOutput設置爲所需的播放設備的ID。

  • 您可以通過mciGetDeviceID("waveaudio")
  • 它不能100%清楚wOutput想,它可能是相同的ID通過waveOutGetDevCaps()
返回的得到 IDDevicemciSendCommand()