linux下音效卡程式設計試探(轉)
linux下音效卡程式設計試探(轉)[@more@] 經過小第的不懈努力,終於對音效卡程式設計有了一定的掌握.實現了一個小的錄音
程式,//hehe //admire
當然還很不完善,還有一些細節我不大清楚//shy,現將原碼貼出,請各位給幫
忙指正,//xixi
#include
#include
#include
#include
#include
main()
{
int id,fd,i,j;
char testbuf[4096];
id=open("/dev/audio",O_RDWR);
fd=open("test.wav",O_RDWR);
if(id<0||fd<0){
printf("error in open the device! ");
printf("id %d dsp%d seq%d ",id,dsp,seq);
exit(-1);
}
post=0;
ioctl(id,SNDCTL_DSP_RESET,(char *)&i);
ioctl(id,SNDCTL_DSP_SYNC,(char *)&i);
i=1;
ioctl(id,SNDCTL_DSP_NONBLOCK,(char *)&i);
i=8000;
ioctl(id,SNDCTL_DSP_SPEED,(char *)&i);
i=1;
ioctl(id,SNDCTL_DSP_CHANNELS,(char *)&i);
i=8;
ioctl(id,SNDCTL_DSP_SETFMT,(char *)&i);
i=3;
ioctl(id,SNDCTL_DSP_SETTRIGGER,(char *)&i);
i=3;
ioctl(id,SNDCTL_DSP_SETFRAGMENT,(char *)&i);
i=1;
ioctl(id,SNDCTL_DSP_PROFILE,(char *)&i);
for(j=0;j<10;){
i=read(id,testbuf,4096);
if(i>0){
write(fd,filebuf,i);
j++;
}
}
close(fd);
close(id);
}
該程式只是簡單地錄一小段純音訊資料儲存在test.wav中,用命令
cat test.wav >/dev/audio 就可以播放出來
對了因為程式要讀寫音效卡的裝置檔案,所以你必須用相應的許可權,或者
你是root。
程式,//hehe //admire
當然還很不完善,還有一些細節我不大清楚//shy,現將原碼貼出,請各位給幫
忙指正,//xixi
#include
#include
#include
#include
#include
main()
{
int id,fd,i,j;
char testbuf[4096];
id=open("/dev/audio",O_RDWR);
fd=open("test.wav",O_RDWR);
if(id<0||fd<0){
printf("error in open the device! ");
printf("id %d dsp%d seq%d ",id,dsp,seq);
exit(-1);
}
post=0;
ioctl(id,SNDCTL_DSP_RESET,(char *)&i);
ioctl(id,SNDCTL_DSP_SYNC,(char *)&i);
i=1;
ioctl(id,SNDCTL_DSP_NONBLOCK,(char *)&i);
i=8000;
ioctl(id,SNDCTL_DSP_SPEED,(char *)&i);
i=1;
ioctl(id,SNDCTL_DSP_CHANNELS,(char *)&i);
i=8;
ioctl(id,SNDCTL_DSP_SETFMT,(char *)&i);
i=3;
ioctl(id,SNDCTL_DSP_SETTRIGGER,(char *)&i);
i=3;
ioctl(id,SNDCTL_DSP_SETFRAGMENT,(char *)&i);
i=1;
ioctl(id,SNDCTL_DSP_PROFILE,(char *)&i);
for(j=0;j<10;){
i=read(id,testbuf,4096);
if(i>0){
write(fd,filebuf,i);
j++;
}
}
close(fd);
close(id);
}
該程式只是簡單地錄一小段純音訊資料儲存在test.wav中,用命令
cat test.wav >/dev/audio 就可以播放出來
對了因為程式要讀寫音效卡的裝置檔案,所以你必須用相應的許可權,或者
你是root。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-946539/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下音效卡通 (轉)Linux
- Linux下的OpenGL程式設計(轉)Linux程式設計
- Linux下C語言程式設計(轉)LinuxC語言程式設計
- Linux下的shell程式設計入門(轉)Linux程式設計
- 如何試探一個安卓程式設計師的水平安卓程式設計師
- Linux 程式設計之Shell程式設計(轉)Linux程式設計
- Linux下的GTK圖形介面程式設計(轉)Linux程式設計
- Linux下的OSS音訊介面程式設計(轉)Linux音訊程式設計
- Linux下C語言程式設計簡介(轉)LinuxC語言程式設計
- Linux下的多執行緒程式設計(轉)Linux執行緒程式設計
- linux下c程式設計中的DOS攻擊程式(轉)LinuxC程式程式設計
- linux下bluetooth程式設計(三)HCI層程式設計Linux程式設計
- linux下bluetooth程式設計(八)SDP層程式設計Linux程式設計
- Linux核心程式設計(阻塞程式)(轉)Linux程式設計
- linux下的SHELL程式設計Linux程式設計
- Linux下C語言程式設計基礎知識(轉)LinuxC語言程式設計
- Debian/Ubuntu Linux下核心程式設計者必備(轉)UbuntuLinux程式設計
- (整合)Linux下的多程式程式設計Linux程式設計
- linux驅動程式設計(轉)Linux程式設計
- Linux程式設計之一(轉)Linux程式設計
- Linux程式設計之三(轉)Linux程式設計
- Linux程式設計之四(轉)Linux程式設計
- Linux防火牆程式設計(轉)Linux防火牆程式設計
- Linux Unicode 程式設計(轉)LinuxUnicode程式設計
- 初探WINDOWS下IME程式設計 (轉)Windows程式設計
- Linux核心模組程式設計--阻塞程式(轉)Linux程式設計
- 試圖探尋JavaScript的非同步設計JavaScript非同步
- linux下使用makefile方式程式設計主程式Linux程式設計
- Linux核心模組程式設計指南(轉)Linux程式設計
- Linux程式設計入門-crypt(轉)Linux程式設計
- Linux的shell程式設計(一)(轉)Linux程式設計
- Linux的shell程式設計(二)(轉)Linux程式設計
- Linux的shell程式設計(三)(轉)Linux程式設計
- Linux的shell程式設計(四)(轉)Linux程式設計
- Linux核心程式設計(結論)(轉)Linux程式設計
- Linux程式設計入門-gpm(轉)Linux程式設計
- Linux程式設計入門 - crypt(轉)Linux程式設計
- linux下bluetooth程式設計(四)L2CAP層程式設計Linux程式設計