AudioTrack和AudioFlinger之間數據通信架構,以及內存分配

1、AF中最多支持32個Track;
2、一個應用進程創建多個AT時只會擁有一個Client,多個AT申請內存由該進程的Client從ClientSharedHeapSize大小的內存中分配;
3、一個Client管理的空間是固定的,由變量ClientSharedHeapSize決定;
4、每一個創建AT的進程都會創建一個Client,分配ClientSharedHeapSize大小的內存;

獲取單個Client管理的buffer大小:AudioFlinger::getClientSharedHeapSize()
獲取單個AudioTrack所分配的buffer大小:
AudioTrack::getBufferSizeInFrames() * AudioTrack::mFrameSize
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章