alsa記錄

週期,period,至關於底層的一個緩衝區窗口的大小,不過其單位不是字節,而是frame_size,雙聲道就是2.,單聲道就是1.html

這裏不對,應該還和量化位數相關,8位量化對於單聲道frame_size就是1,可是16位的話變爲2了函數


設置了週期後,還須要設置底層lib的緩衝區大小,其大小應該是週期*frame_sizeui

設置完了後,須要再去讀取一次週期的大小spa

而後,獲得週期大小後,能夠設置應用層的讀寫緩衝區大小,好比能夠設置一會兒讀取的PCM文件大小非週期*frame_size 字節大小.net

讀寫出之後,能夠直接調用PCM寫入函數寫入,寫入大小爲週期代大小,注意不是字節單位,而是frame_size單位unix

對於libmad解碼出的PCM流,從其lib可知,PCM的緩衝區大小爲 每一個聲道1152字節htm

因此,對應到alsa,16位量化的話blog

至關於一個週期爲1152*2*2(雙聲道)字節,也就是週期爲1152個frame_sizeget

至關於一個週期爲1152*1*2(但聲道)字節,也就是週期爲1152個frame_size
it

此文有介紹

http://blog.chinaunix.net/uid-10995602-id-2918643.html

相關文章
相關標籤/搜索