其中sound.c 用于录音和回放。其中特别需要注意的是:1。目前声卡似乎不能打开全双工,所以如果fd = open("/dev/dsp", O_RDWR) ,则无法录音和回放。只能分别设置RDONLY和WRONLY。即半双工方式。否则,就是在录音的时候可以听见,但是无法回放。分析下来似乎是IIC总线中只分配了一个通道给声卡,或者是只启用了一个通道,所以无法录音和放音同步进行。解决方法就是分别以RDONLY方式打开进行录音和WRONLY方式打开进行放音。 Sound1.c用于将录音保存在test.wav文件中,并利用cast test.wav > /dev/sound/dsp回放文件。此处需要注意的是,录音频率必须是44100才能正确回放。否则就会出现类似快放的效果。分析应该是cast方式利用了dsp的默认播放频率44100,所以如果录音的时候低于这个频率,这放的时候就会快放。 此外,设置采样率的时候必须设置成16bit,否则会提示出错。原因尚不知道,估计是与声卡有关。