• 大小: 2KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: Linux  udp  音频  OSS  

资源简介

想要实现局域网内的两台Linux主机实现对讲功能。于是就写了此代码,但只能实现一端采集语音,一端播放语音,要实现实时对讲还需要多个线程,多个套接字。此段代码能实现基本的一端录音,一端播放。但是可能还有点问题,就是时间长了,可能延时较大。由于是基于OSS的,所以执行时应加padsp,如下所示: gcc -o udp-client udp-client.c padsp ./udp-client IP gcc -o udp-server udp-server.c padsp ./udp-server

资源截图

代码片段和文件信息

//udp-dsp-client.c
#include 
#include 
#include 
#include 
#include 
#include  
#include 
#include 
#include 
#include 
#include 

//录音频率
#define RATE 88200
//量化位数
#define SIZE 16
//声道数目
#define CHANNELS 2
//缓冲区大小
#define RSIZE 2048
//保存录取的音频数据
unsigned char buf[RSIZE];

int main(int argcchar *argv[])
{
int fdsockfd;
int status;
int arg;
struct sockaddr_in s_addr;
if((sockfd=socket(AF_INETSOCK_DGRAM0))==-1)
{
perror(“socket“);
exit(errno);
}
else
printf(“creat sockfd success!.\n\r“);
s_addr.sin_family=AF_INET;  
s_addr.sin_port=htons(7000);  
if(argc!=2)
{
printf(“用法:./udp-dsp-client IP地址。\n“);
return 1;

else  
s_addr.sin_addr.s_addr=inet_addr(argv[1]); 
bzero ( & (s_addr.sin_zero)8);

/*************读方式打开音频设备********************************************************************************/
fd= open(“/dev/dsp“O_RDONLY0777);
if(fd < 0)
{
perror(“Cannot open /dev/dsp device“);
return 1;
}

//设置采样的量化位数
arg = SIZE;

status = ioctl(fdSOUND_PCM_WRITE_BITS&arg);
if(status == -1)
{

perror(“Connet set SOUND_PCM_WRITE_BITS “);
return -1;
}

//设置采样时的声道数目
arg = CHANNELS;
status = ioctl(fdSOUND_PCM_WRITE_CHANNELS&arg);
if(status == -1)
{

perror(“Connet set SOUND_PCM_WRITE_CHANNELS “);
return -1;
}

//设置采样时的频率
arg = RATE;
status = ioctl(fdSOUND_PCM_WRITE_RATE&arg);
if(status == -1)
{

perror(“Connet set SOUND_PCM_WRITE_RATE “);
return -1;
}

int readNumsendNum;
while(1)
{
 //从声卡读语音数据
readNum = read(fdbufRSIZE);        
if(readNum==-1)
{
perror(“read wrong number of bytes\n“);
}
//发送语音数据
sendNum=sendto(sockfdbufreadNum0(struct sockaddr * )& s_addrsizeof(struct sockaddr));
if(sendNum==-1)
{
printf(“sendto error\n“);
break;
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-10-27 10:53  udp\
     文件        2059  2014-10-24 16:33  udp\udp-client.c
     文件        2375  2014-10-20 21:16  udp\udp-server.c

评论

共有 条评论