其中sound.c 用于錄音和回放。其中特別需要注意的是:1。目前聲卡似乎不能打開全雙工,所以如果fd = open("/dev/dsp", O_RDWR) ,則無法錄音和回放。只能分別設(shè)置RDONLY和WRONLY。即半雙工方式。否則,就是在錄音的時(shí)候可以聽見,但是無法回放。分析下來似乎是IIC總線中只分配了一個(gè)通道給聲卡,或者是只啟用了一個(gè)通道,所以無法錄音和放音同步進(jìn)行。解決方法就是分別以RDONLY方式打開進(jìn)行錄音和WRONLY方式打開進(jìn)行放音。
Sound1.c用于將錄音保存在test.wav文件中,并利用cast test.wav > /dev/sound/dsp回放文件。此處需要注意的是,錄音頻率必須是44100才能正確回放。否則就會出現(xiàn)類似快放的效果。分析應(yīng)該是cast方式利用了dsp的默認(rèn)播放頻率44100,所以如果錄音的時(shí)候低于這個(gè)頻率,這放的時(shí)候就會快放。
此外,設(shè)置采樣率的時(shí)候必須設(shè)置成16bit,否則會提示出錯。原因尚不知道,估計(jì)是與聲卡有關(guān)。
標(biāo)簽:
sound
回放
全雙工
聲卡
上傳時(shí)間:
2013-12-31
上傳用戶:cc1