linux ²¥·ÅÉùÒôÎļþ³ÌÐò´úÂë
ÉùÒôÎļþ±ØÐëΪWave PCM unsigned 8bits mono¸ñʽ
/* the *.wav must be 8000Hz 64kbps 8bits MONO(1)*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <linux/soundcard.h> /*for OSS style sound programing */
#define BUFF_SIZE 512 /*buffer size:512 Bytes */
#define FMT8BITS AFMT_U8 /*unsigned 8 bits(for almost PC) */
#define FMT16BITS AFMT_S16_LE /*signed 16 bits,little endian */
#define FMT8K 8000 /*default sampling rate */
#define FMT11K 11025 /*11,22,44,48 are three pop rate */
#define FMT22K 22050
#define FMT44K 44100
#define FMT48K 48000
#define MONO 1
#define STEREO 2
int main(int argc, char *argv[])
{
if(argc!=2)
printf("input error! ./playvoice filename");
int fd; //for device
fd=open("/dev/dsp",O_WRONLY);
if (fd<0){
perror("Can't open /dev/dsp");
return -1;
}
int outfile;
outfile=open(argv[1],O_RDONLY);
if (outfile<0) {
perror("Cannot open file for writing");
return -1;
}
/* set bit format */
int bits = FMT16BITS;
if (ioctl(fd, SNDCTL_DSP_SETFMT, &bits) == -1) {
fprintf(stderr, "Set fmt to bit %d failed:%s\n", bits,
strerror(errno));
return (-1);
}
if (bits != FMT16BITS) {
fprintf(stderr, "do not support bit %d, supported 8¡¢16\n", bits);
return (-1);
}
/*set channel */
int channel = MONO;
if ((ioctl(fd, SNDCTL_DSP_CHANNELS, &channel)) == -1) {
fprintf(stderr, "Set Au
Ïà¹ØÎĵµ£º
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
1.
int (*func)();º¯ÊýÖ¸Õ룬ָÏòµÄº¯ÊýΪ¿Õ²ÎÊý£¬·µ»ØÕûÐÍ£»
2.
»Øµ÷º¯ÊýÊÇÒ»¸ö³ÌÐòÔ±²»ÄÜÏÔʽµ÷Óõĺ¯Êý£»Í¨¹ý½«»Øµ÷º¯ÊýµÄµØÖ·´«¸ø±»µ÷ÓÃÕß´Ó¶øÊµÏÖµ÷Óá£
»Øµ÷º¯ÊýÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý¡£Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õ루µØÖ·£©×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯Êý£¬µ±Õâ¸öÖ¸Õë±»ÓÃΪµ÷ÓÃËüËùÖ¸ÏòµÄº¯Êýʱ£¬ÎÒÃǾÍ˵ÕâÊǻص÷º¯ ......
ת×Ô£º http://www.diybl.com/course/6_system/linux/Linuxxl/20081124/152557.html
ºÃºÃѧϰ£¬ÌìÌìÏòÉÏ
ÒýÑÔ
¡¡¡¡ Ị̈߳¨thread£©¼¼ÊõÔçÔÚ60Äê´ú¾Í±»Ìá³ö£¬µ«ÕæÕýÓ¦ÓöàÏ̵߳½²Ù×÷ϵͳÖÐÈ¥£¬ÊÇÔÚ80Äê´úÖÐÆÚ£¬ solarisÊÇÕâ·½ÃæµÄٮٮÕß¡£´«Í³µÄUnixÒ²Ö§³ÖÏ̵߳ĸÅÄµ«ÊÇÔÚÒ»¸ö½ø³Ì£¨process£©ÖÐÖ»ÔÊÐíÓÐÒ»¸öỊ̈߳¬ÕâÑù ......
´ÓUbuntu 8.04µ½9.10£¬ÎÒµÄAcer Aspire 4920±¾×ÓµÄýÌå´¥Ãþ¿ØÖƼüʼÖÕ²»ÄÜÕý³£¹¤×÷¡£×î½üÕÒµ½ÁË´ËÎÊÌâµÄ½â¾ö·½·¨£¬¹©Ê¹ÓÃLinux²Ù×÷ϵͳ¼°ÓµÓÐAcer±Ê¼Ç±¾µÄÓû§²Î¿¼¡£ ÔÚUbuntu 9.10Ï£¬ÎÒµÄýÌå¿ØÖÆ¼ü±»Ê¶±ðΪÁíÒ»¿éSynaptics´¥Ãþ°å£¬²¢ÇÒËĸö¼ü·Ö±ð±»Ê¶±ðΪÉÏ¡¢Ï¡¢×ó¡¢ÓÒ·Ò³¼ü£¬µ¼ÖÂÎÞ·¨Õý³£¹¤×÷¡£ÐèҪͨ¹ýÐ޸İ´¼üÓ³Éä ......