数据回调函数 简介 :
① 采样缓冲 : 采样后 , 将采集的样本存入缓冲区 ;
② 播放采样 : 将缓冲区中的样本写入 AAudio 音频流 ;
③ 调用回调函数 : AAudio 音频流如果播放完当前数据..., 之后继续播放音频采样 ;
之后如果采样播放完毕 , 继续调用回调函数 ;
下面会着重讲解该数据回调函数的细节
II ....不能执行耗时操作 : 在该回调函数中 , 不能执行太耗时的操作 或 阻塞操作 , 如果阻塞时间超过了采样播放的时间 , 就会造成后续采样无法及时 读取 或 写入 到 AAudio 音频流中 , 出现音频故障...: 使用 malloc() 或 new 分配堆内存 , 极大可能造成内存泄漏或内存溢出 ;
② 文件操作 : 打开 open , 关闭 close , 读取 read , 写出 write 等针对文件的操作...;
③ 网络操作 : 访问网络操作 , 从网络中读取数据 , 或向远程端口发送数据 ;
④ 同步线程 : 线程间的同步操作会造成阻塞 ;
⑤ 休眠阻塞 : sleep 方法不能执行 , 会造成阻塞 ;