做了个简单的处理pcm数据的demo
主线程创建一个子线程,获取QAudioOutput一个周期所需要的数据量,循环的从文件中取出一个周期的数据量压入子线程的队列。
子线程创建后返回QAudioOutput一个周期所需要的数据量,开始等待主线程压入数据,当数据队列中有数据时将数据写入QAudioOutput缓冲区,当QAudioOutput对象内部缓冲区不足存放下一个数据包时,等待一毫秒后再处理。
bytesFree()返回内部缓冲区的空闲空间的字节数,每次写入所需的数据量periodSize(),填充满内部缓冲时暂停填入,以实现连续播放。
1