我想用ANSI C.在Unix上輸出自制合成聲音的簡單方法是什麼?
這是學習的目的,而不是做在Mac OS X(理想情況下其他類Unix操作系統)的一些聲音合成「我需要一個解決方案,任何解決方案,快!」
假設我在C程序中有一個8位緩衝區,我每秒更新22050次。我怎樣才能讓我的揚聲器輸出波形?
我想用ANSI C.在Unix上輸出自制合成聲音的簡單方法是什麼?
這是學習的目的,而不是做在Mac OS X(理想情況下其他類Unix操作系統)的一些聲音合成「我需要一個解決方案,任何解決方案,快!」
假設我在C程序中有一個8位緩衝區,我每秒更新22050次。我怎樣才能讓我的揚聲器輸出波形?
沒有POSIX音頻API或類似的東西。因此,如果您想在Linux,OSX等上獲得聲音支持,您需要一個包含不同操作系統本機聲音API的庫。看看這個SO question。它並不直接要求OSX,但大多數答案也適用於它,除了libao。至少我沒有在他們的主頁上發現任何東西,那就是他們支持OSX。
SDL可以播放聲音緩衝區。但是,PortAudio可能會更好地工作,當需要更多數據時,PA會調用您的C回調,然後您可以將它傳遞給下一個緩衝區。實際上這很容易。
+1作爲portaudio的參考。一個簡單的聲音輸出可以被寫入少於20行..打開輸出流並寫入它..完成! –
看起來不錯!謝謝 – xyz
不完全是你問的,但也許它可以幫助你:http://stackoverflow.com/questions/379353/what-is-a-lightweight-cross-platform-wav-playing-library/ – quinmars
@ quinmars libao的確看起來非常優秀而且輕便。請把它作爲答案,以便您可以獲得一些重要點。 – xyz
完成,但我還沒有發現libao支持OSX – quinmars