Linux下的音频采集与回放

{

#ifdef DEBUG_WARN
printf("Set speed to %d:%d\\n", hz, nWhich);
#endif

return 0;
}

return 1;
}

/*
* Set Sound Card Channel
* return 1 if success, else return 0.
* chn -- MONO, STERO
*/
int SetChannel(int chn)
{
int tmp = chn;

if(-1 == ioctl(devfd, SNDCTL_DSP_CHANNELS, &tmp))
{

#ifdef DEBUG_WARN
printf("Set Audio Channel faile:%d\\n", nWhich);
#endif

return 0;
}
return 1;
}

/*
* Record
* return numbers of byte for read.
*/
int Record(char *buf, int size)
{
return read(devfd, buf, size);
}

/*
* Playback
* return numbers of byte for write.
*/
int Play(char *buf, int size)
{
return write(devfd, buf, size);
}




test.c

代码:
// A sample to test record and playback.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include "sndtools.h"

int main()
{
char *buf;
int dwSize;
if(!OpenSnd())
{
printf("Open sound device error!\\n");
exit(-1);
}

SetFormat(FMT16BITS, FMT8K, WAVOUTDEV);

SetChannel(MONO, WAVOUTDEV);

buf = (char *)malloc(320);

if(buf == NULL)
exit(-1);
for(int i = 0; i <1000; i++)
{
dwSize = Record(buf, 640);
dwSize = Play(buf, dwSize);
}

exit 1;
}
共2 页 首页 上一页 [1] [2下一页 尾页>