2012-04-15 132 views
4

我的設備有2個外部揚聲器。我如何分別測試它們?如何在不同的揚聲器上播放聲音?

1個功能只能在左邊播放聲音,而只能在右邊播放聲音。

谷歌搜索沒有成功。也許我使用的是錯誤的條款。

也許使用WIN32 API設置天平?

回答

4

如果您正在討論立體聲揚聲器系統設置中的2個揚聲器,那麼您的解決方案很簡單。

創建一個只在左聲道播放的聲音,然後播放它。然後,創建一個只能在右聲道播放的聲音,播放它。

您可以使用Audacity創建聲音。

由於.NET API而言,你可以試試你的運氣與http://windowsmedianet.sourceforge.net/

你可能需要的是http://msdn.microsoft.com/en-us/library/ms712636(VS.85).aspx,因爲他們有他們整齊地包裹着。

編輯:

順便說一句,你可以使用waveOutOpen兩次打開同一臺設備,而且一旦打左聲音文件,並獨立兩個獨立waveOutOpen設備上播放正確的聲音文件句柄都指向同一個物理設備。根據聲音的類型,聲音將按照預期發出,根據您選擇的揚聲器發出。

此外,如果你想以編程方式創建的聲音,只有左聲道意味着你的音頻文件每隔PCM樣品應爲0

我不推薦使用的平衡,因爲混音器API很難要明白,並且你會偶然爲兩個播放的樣本設置API。

甚至更​​多的信息:

您可以使用http://msdn.microsoft.com/en-us/library/system.media.soundplayer(VS.80).aspx播放WAV文件。如果您沒有WAV文件,但您想播放MemoryStream中的內容,請在音頻採樣數據的前端找到某種形式的WAV文件頭。你不會是第一個嘗試它:)

1

我不認爲.NET自己有足夠的控制來做你所問的。您可能將不得不使用第三方庫。檢查出NAudio它一定能夠做到你想要的。

相關問題