我想獲得聲音級別,因此在錄製聲音時可以在我的SDL應用程序(平臺爲Linux)中顯示它。我怎樣才能做到這一點?我在我的應用程序中使用FMOD API,但爲了錄製,我使用了SoX(分支並使用exec()來設置它 - 可能這樣做會更好,但我不知道如何:()。可以直接訪問/ dev/dsp來獲取聲音數據嗎?在C++中錄製時從設備獲取聲音級別
0
A
回答
1
如果您喜歡,您可以在FMOD中進行錄製,可以使用System :: recordStart和System :: getRecordDriverInfo等FMOD API FMOD發佈的錄製示例可作爲解決方案的基礎。
專門爲獲取聲音提供el,如果你想將它作爲運行時的東西,你可以使用Channel :: getWaveData,它會給你一個當前播放音頻的快照,因此你需要播放錄製數據。
或者,您也可以使用Sound :: lock/Sound :: unlock來訪問錄製聲音數據,如果它沒有播放。
通過任一方法訪問聲音數據後,您可以通過讀取值來獲取聲音級別/峯值信息。
1
不,至少應該使用「安全」的ALSA API。但是你應該考慮使用更高級的東西,比如Gostreamer或PulseAudio
相關問題
- 1. 在Windows 7中錄製時獲取麥克風聲音級別
- 2. 在Android中獲取麥克風聲音級別(分貝級別)
- 3. 如何獲取當前音頻輸出設備的當前聲音級別?
- 4. 獲取C#中聲音設備的名稱
- 5. 錄製聲音識別android
- 6. 用C++或C實時錄製聲音
- 7. Android設備上的單聲道/立體聲音頻錄製有什麼區別
- 8. 從ios設備的內置揚聲器錄製音頻
- 9. 如何在錄製的音頻聲音中查找分貝級別
- 10. 如何從音頻設備ID獲取音頻設備號?
- 11. 在播放聲音時錄製音頻
- 12. iOS - 使用AVFoundation錄製聲音後的iPhone聲音級別較低
- 13. 從默認輸出設備錄製聲音的最佳方式是什麼? [C#]
- 14. 在FMS中錄製聲音
- 15. 在Android中錄製聲音
- 16. 無法在設備上播放錄製的聲音
- 17. Appcelerator - 在Android中獲取設備音量
- 18. 聲音並非在設備
- 19. Android記錄內部設備聲音
- 20. c#在Windows 10 Mobile中獲取系統音量級別
- 21. 我如何在Android中錄製聲音並同時讀取聲音
- 22. 在錄製的聲音中識別音符 - 第2部分 - Python
- 23. 在Windows中從立體聲混音中獲取聲音樣本
- 24. 直接從硬件獲取聲音C#
- 25. 如何在Android上以百分比獲取設備音頻級別?
- 26. 從C++的MIDI設備中獲取ID
- 27. 在Android中錄製聲音並播放調製聲音?
- 28. 系統聲音忽略音量級別
- 29. 聲音在設備中不起作用
- 30. 在特定設備中播放聲音
我試過使用FMOD,但是我想立即得到MP3編碼,而據我所知,它在Linux平臺上的FMOD中不起作用。 – mav 2010-10-15 05:14:33
FMOD無法幫助編碼端,通過使用Sound :: lock並解鎖,您可以訪問原始PCM。如果你想把這些大塊的數據加入到蹩腳的東西中,那麼這絕對是可以製作MP3的,但是FMOD沒有內置到編碼支持中。 – 2010-10-19 23:16:52