最近在弄网络音频传输,linux下音频的录制和播放比较简单,一般都是open一个dsp设备文件,ioctl一些必要的参数,如:采样率,声道,采样字节数等。
然后开一个线程读取发送(或者接受播放)。至于一些网络实时性的优化策略,在这里不讨论。这里只讨论底层的录制和播放。
其实windows下大概也是这样的原理,但是windows略有不同,主要是和windows的api有关。
先通俗的形容一下,windows下的音频录制和播放就好比是步枪射击。
装弹,准备缓冲区内存空间
射击,拷贝缓冲区数据到用户空间
退弹壳,清空缓冲区。
装弹.....
但实际操作还设计到多线程和一些函数的调用。
先来说win32的音频录制。
由于时间原因,后面的待续.....