2014-07-22 49 views
2

爲我校的項目,我想知道如果有人能幫助我在尋找通過我的電腦的揚聲器輸出聲音實時的方式。 這必須通過我的聲卡完成,同時播放正在播放的信號參數,如相位,幅度,波形等? 如果可能的話,我會在C++語言中預先設置一個庫,並且出於實際的原因在Windows平臺上。當然Linux也是可能的。如何使用C++通過外部PC揚聲器輸出不同的波形信號?

更重要的是我也想通過每個揚聲器發送不同的波形,以創建靜止波作爲可以通過這個實驗可以看出: www.youtube.com/watch?v=T56waxJ7bB8

+0

由於聲音輸出通常是平臺特定的,因此您應指定您打算使用的操作系統或系統。 – Edward

+0

謝謝愛德華,它已經修復。 –

回答

0

有幾個API來做到這一點。

  • 對於Windows XP及以上版本使用的DirectSound
  • 對於Windows Vista/7/8及以上版本使用WASAPI
  • 有一些跨平臺的API,如OpenAL的和SDL。

在網上搜索一些例子。一段時間玩這些API和例子,看看你是如何做的。

+0

好的,謝謝!我會嘗試一下並回復你。 –

1

一個有趣的可能性是使用JACK。它在Linux,Windows和OSX下工作,並提供對音頻輸出的低延遲訪問。它還允許將輸出任意路由到某個其他程序。

JACK的編程模型非常簡單 - 唯一支持的數據類型是單通道32位float s,因此您可以提供單獨的左右音頻正弦波實例,而不是手動交錯數據通道波發生器並將每個發送到適當的輸出通道。另外,作爲一個小問題,JACK2是用C++編寫的(儘管外部API仍然是C)。我建議從JACK wiki開始,也許可以修改其中一個簡單的示例客戶端來執行您正在嘗試的操作。

+0

似乎是我需要完成工作的事情。謝謝! –

相關問題