Linux环境下用c语言写的播放wav文件的小程序
本程序可以读取.wav文件,然后进行播放。
确认方法:cat /etc/sndstat,如果显示无此设备,则没有安装驱动。
#include <unistd.h>#include <fcntl.h>#include <sys/types.h>#include <sys/ioctl.h>#include <stdlib.h>#include <stdio.h>#include <linux/soundcard.h>/* 下面的三个参数是跟具体文件相关的,文件什么样,就要设置成什么样 */
int main(){ int fd; int wavfd; //wav文件的描述符
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 = 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");
/* 从wav文件中读buf大小的内容,然后写入/etc/dsp中,直到文件结束 */ int time = 0; //动态显示播放时间用
/*status = ioctl(fd, SOUND_PCM_SYNC, 0);
}}本程序中需要一个.wav文件才能播放,你可以到百度mp3上去搜索一个.wav文件,放到程序目录下。然后,把程序中的文件名改成该音频的文件名。
相关文档:
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
快速排序的核心在于分治.
分治算法:
1. 认定只有一个元素或没有元素的数组是有序的.
2. 将数组按照一个分界值分为左右两部分. 左面所有元素值比分界值小, 右面所有元素值比分界值大或等于.
3. 将左右两部分分别再分治, 直到要分支的部分只有一个元素或没有元素, 那么整个数组就是有序的了.
作者: selfimpr
博客: http ......
转载自:
馨荣家园blog
在C语言中,假设我们有这样的一个函数:
int function(int a,int b)
调
用时只要用result =
function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算
机没有办法知道一个函数调用需要多少个、什么样的参数,也 ......