我正在開發一個應用程序,通過自定義UDP協議從遠程服務器接收音頻樣本流。該流由小序列樣本組成,每個序列可以具有不同數量的信道和速率。使用PulseAudio中的不同sample_spec播放樣本
據我所知,流的sample_spec只能在流的創建過程中設置(pa_simple_new
,pa_stream_new
等),之後無法切換。
我的問題是:這些樣本在PulseAudio中播放的最有效方法是什麼?我看到三個選項:
- 保持一個單一的PulseAudio流,手動重新採樣樣本序列並在必要時混合通道(爲了具有相同sample_spec樣品餵養的PulseAudio)
- 保持一個單一的PulseAudio流,靠近並與新sample_spec重新打開它時的規格改變
- 保持多個流,一個爲每一種樣品我有
選項1工作的好像很多手工的工作,和幾乎資源 - 消耗也是如此。方案2似乎非常低效。選項3看起來可能是最好的選項,但我擔心資源消耗。有什麼我可能會失蹤?
謝謝!規格/速率的變化很頻繁,所以我想我會堅持流基於池的實現 –