姐贵vs比利王 magnet:【转】Linux环境下用c语言写的播放wav文件的小程序
来源:百度文库 编辑:中财网 时间:2024/04/30 13:20:47
本程序可以读取.wav文件,然后进行播放。
使用前,请确认您是否安装音频驱动。
确认方法:cat /etc/sndstat,如果显示无此设备,则没有安装驱动。
安装驱动很简单,到oss.com上下载音频驱动,然后按照网上的教程进行就可以了。
源代码如下:
ps:可以用file 文件名命令来查看该wav文件的属性,以便据此来更改程序中的播放参数。
使用前,请确认您是否安装音频驱动。
确认方法:cat /etc/sndstat,如果显示无此设备,则没有安装驱动。
安装驱动很简单,到oss.com上下载音频驱动,然后按照网上的教程进行就可以了。
源代码如下:
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- /* 下面的三个参数是跟具体文件相关的,文件什么样,就要设置成什么样 */
- #define RATE 11025
- #define SIZE 16
- #define CHANNELS 1 // 1表示单声道,2为立体声
- /* ................ */
- unsigned char buf[RATE*SIZE/8]; //buf里面正好放一秒钟的音频,下面的计时还要用
- int main()
- {
- int fd;
- int wavfd; //wav文件的描述符
- int arg; /* ..ioctl..... */
- int status; /* ........ */
- /* ...... */
- fd = open("/dev/dsp", O_RDWR);
- if (fd < 0) {
- printf("open of /dev/dsp failed");
- exit(1);
- }
- wavfd = open("12193767609.wav",O_RDONLY);
- if (wavfd < 0) {
- printf("open of wav failed");
- exit(1);
- }
- /* .......... */
- arg = SIZE;
- status = ioctl(fd, SOUND_PCM_WRITE_BITS, &arg);
- if (status == -1)
- perror("SOUND_PCM_WRITE_BITS ioctl failed");
- if (arg != SIZE)
- perror("unable to set sample size");
- /* .......... */
- arg = CHANNELS;
- status = ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &arg);
- if (status == -1)
- perror("SOUND_PCM_WRITE_CHANNELS ioctl failed");
- if (arg != CHANNELS)
- perror("unable to set number of channels");
- /* .......... */
- arg = RATE;
- status = ioctl(fd, SOUND_PCM_WRITE_RATE, &arg);
- if (status == -1)
- perror("SOUND_PCM_WRITE_WRITE ioctl failed");
- /* 从wav文件中读buf大小的内容,然后写入/etc/dsp中,直到文件结束 */
- int time = 0; //动态显示播放时间用
- while (status = read(wavfd, buf, sizeof(buf)) > 0) {
- write(fd, buf, sizeof(buf));
- printf("%ds, enjoy .../n",time++);
- /* 以下三句,用于在更改播放文件的参数时,播放掉缓冲区内的内容,可以用,更保险*/
- /*status = ioctl(fd, SOUND_PCM_SYNC, 0);
- if (status == -1)
- perror("SOUND_PCM_SYNC ioctl failed");
- */
- }
- }
- #include
ps:可以用file 文件名命令来查看该wav文件的属性,以便据此来更改程序中的播放参数。
关于linux下如何构键c语言开发环境
如何Linux下用C写的Http server
LINUX下有何开发环境?用什么语言比较好?当前在中国LINUX发展的如何?
请问在linux下使用C语言写的程序可以改变他的运行优先等级?
windows、C、VC、VB、Java、汇编、linux分别是用什么语言写的?
怎样学习在linux操作系统下用C语言编程
谁知道ARM环境下的C语言编程啊
在c语言环境下开发简单的绘图程序
C语言的环境是什么?
用C语言如何获取当前Linux系统的用户名
怎样在Linux环境下编写C程序?谢谢!
怎样在Linux环境下编写C程序?谢谢!
用C语言写
linux环境下的web服务
c语言设计w
编程,用C语言,在TC环境下运行.编一个n*n的螺旋矩.
谁知道linux下的C语言的include都查询哪个路径
★★C语言的运行环境?
linux下的c语言开发和java开发哪个更有前途?
请问 如何 在 linux下 用 c语言 创建新文件夹~
C语言如何在XP的DOS环境下,安装什么中文系统,才能显示汉字
C语言的编程环境能在WIN98下运行吗
高分求c语言的计算器源码,要求在dev环境下通过
请问在VC 环境下运行C 语言程序时怎样修改文件的路径,