经过小第的不懈努力,终于对声卡编程有了一定的掌握.实现了一个小的录音
程序,//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!\n");
printf("id %d\t dsp%d\t seq%d\n",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。
通告:http://www.qqread.com/linux/2006/06/e310123061.html
更多内容请看Linux集群技术、体验Linux的音影世界、Linux驱动大全专题,或进入讨论组讨论。
相关专题
- Linux集群技术 (8259篇文章)
- 体验Linux的音影世界 (7931篇文章)
- Linux驱动大全 (8729篇文章)
- Linux下的路由的配置与应用 (11721篇文章)
- Linux命令简介 (9775篇文章)
- Linux防火墙 (9606篇文章)
- Linux日志专题 (8383篇文章)
- Java编程开发手册 (8276篇文章)
- Linux服务器的安全性能 (20291篇文章)
- 揭秘Linux内存管理 (7995篇文章)
- Linux与Windows Vista的桌面之争 (83次浏览)
- 对比评测Vista XP Linux启动时间 (59次浏览)
- Linux 基本概念及常用命令 (57次浏览)
- Linux系统如何判断CPU是双核还是单核 (53次浏览)
- VMware下Linux与真实主机共享上网 (31次浏览)
- Linux系统下如何更改终端显示分辨率 (30次浏览)
- 实用技巧:配置Linux操作系统环境变量 (30次浏览)
- Fedora 8 Linux下安装配置audacious过程 (27次浏览)
- Linux系统下设置环境变量Path的方法 (25次浏览)
- 最流行的发行版:Ubuntu 8.04 Alpha 2发布 (24次浏览)



