2
我有一個程序,執行以下操作:ALSA:打開和關閉PCM在即時
- 打開默認的PCM與snd_pcm_open()功能
- 發送樣本播放聲音
- 關閉PCM與snd_pcm_close()函數
程序將定期播放任何聲音要求它重新ceives,但偶爾open會失敗並返回「Device or resource busy」錯誤。這通常發生在有很多聲音文件時。但是,關閉電話總是成功的。我會假設,如果關閉是成功的,PCM將立即供其他人使用。我還應該補充說,使用聲音的系統上沒有其他任何東西。
ALSA在關閉後還需要清理一些資源嗎? PCM接口是否設計爲經常打開和關閉?互聯網上的大多數例子在啓動時打開PCM流並在關閉時關閉。
關閉pcm似乎是我可以在DAPM核心中生成SND_SOC_DAPM_PRE_PMD小部件事件的唯一方法(我的動機是省電)。是否有另一種方式來通過alsa-lib觸發這個? – waffleman 2011-01-25 20:27:35
@Mister:那麼我們如何管理不斷變化的採樣率?例如,我有2個PCM流,44.1KHz和48KHz採樣率,我想輸出這個音頻s(即一些時間44.1和一些時間48)。我認爲在這個切換期間,Alsa需要關閉和打開。還有其他方法嗎? – jjb 2015-10-19 00:48:45