開發板上的微信語音聊天功能
1.錄音并發送給對方
難點:錄音接收之后如何保存到本地開發板中
2.按住屏幕上的按鈕開始錄音,錄完音之后松開按鈕,自動發送(降低難度:點擊觸摸屏上的錄音按鈕就開始錄音,錄完之后發送)
3.收到語音之后,要有背景提示音,圖標提示
4.發送文件
0.png (51.38 KB, 下載次數: 52)
下載附件
2018-3-27 02:15 上傳
源程序如下:
- #include "myhead.h"
- /*
- tcp通信,boy
- */
- int iphonex;
- void *recvmsgg(void *arg)
- {
- int ret;
- int size = 0;
- char msgbuf[20];
- while(1)
- {
- //接受對方發過來的wav的具體大小
- ret=recv(iphonex,&size,4,0);
- printf("第一個recv返回值是:%d %d\n",ret,size);
- if(size > 20)
- {
- //接收wav
- char buf[99];
- //創建空白wav
- int fd = open("1.wav", O_CREAT|O_RDWR|O_TRUNC);
- if(fd == -1)
- {
- printf("open wav失敗!\n");
- return;
- }
-
- //但是recv不能一次性接收!!!!????
- while(1)
- {
- bzero(buf,99);
- ret=recv(iphonex,buf,99,0);
- printf("第二個recv返回值是:%d %s\n",ret,buf);
- //把buf里面的內容寫到空白wav里
- write(fd,buf,ret);
-
- if(ret < 99)
- {
- close(fd);
- break;
- }
- }
- }
- else
- {
- bzero(msgbuf,20);
- ret=recv(iphonex,msgbuf,20,0);
- printf("6818發來信息: %s\n",msgbuf);
- }
-
-
-
-
- }
- }
- int main()
- {
-
-
- int addrsize=sizeof(struct sockaddr_in);
- int ret;
- char buf[99];
- //定義ipv4地址結構體變量,用于存放對方的ip和端口號
- struct sockaddr_in girladdr;
- //初始化該結構體變量
- bzero(&girladdr,sizeof(girladdr)); //memset()也行
- girladdr.sin_family=AF_INET;
- girladdr.sin_addr.s_addr=inet_addr("192.168.110.128");
- girladdr.sin_port=htons(10003);
-
- //買手機 --》創建tcp套接字
- iphonex=socket(AF_INET,SOCK_STREAM,0);
- if(iphonex==-1)
- {
- perror("create sock failed!\n");
- return -1;
- }
- //不綁定,綁定和不綁定是有區別的
- //撥號,連接女朋友
- ret=connect(iphonex,(struct sockaddr *)&girladdr,addrsize);
- if(ret==-1)
- {
- perror("撥號失敗!\n");
- return 0;
- }
- pthread_t myid;
- //新建一個線程專門用于接收來自女朋友的信息
- pthread_create(&myid,NULL,recvmsgg,NULL);
-
- while(1)
- {
- //發送信息
- bzero(buf,20);
- printf("請輸入你要發送的內容!\n");
- fgets(buf,20,stdin);
- ret=send(iphonex,buf,20,0);
- printf("send返回值是:%d\n",ret);
- }
-
- return 0;
- }
復制代碼
所有資料51hei提供下載:
tcp版本.rar
(485.21 KB, 下載次數: 12)
2018-3-26 18:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|