【Android Audio】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
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u013120422/article/details/102783664
今日推荐