对于音频流的操作,除了前面介绍的音频流打开、开始、暂停、停止和清除等,最主要的操作便是通过音频流的读/写操作来处理音频数据,这里我们就来介绍一下音频流读/写音频数据的操作。
一、音频数据处理
当 audio stream 启动后,有两种方式来处理音频数据。
- 通过 AAudioStream_write 和 AAudioStream_read 函数向流里写数据和读数据,使用此方式需要自己创建线程控制数据读写。
- 通过 callback 的方式,使用此方式,会更高效,延迟更低,是官方推荐的方式。
1、直接读写数据
// 写入数据
AAUDIO_API aaudio_result_t AAudioStream_write(AAudioStream* stream, const void *buffer,
int32_t numFrames, int64_t timeoutNanoseconds)
// 读取数据
AAUDIO_API aaudio_result_t AAudioStream_read(AAudioStream* stream, v