首页 > 娱乐前沿 > 热点
Hownbsp;to实现音频录制和传输……2
碧桐密语 2015-11-24 14:45:48

#为数不多的原创#

先建立UDP连接。为了方便,我先固定UDP端口。

李子铮告诉我们,UDP是​不可靠的,但是开销小。传语音不需要非常可靠啊。每个包传递64kB。

客户端​:

等待网络连接后,开启一个线程,专门接收udp报文。当然,原来接受tcp信令的线程也还存在。如下:

new Thread(new Runnable() {

public void run() {

while(netConnected) {

byte[] data = new byte[256];

DatagramSocket udpSocket = null;

Log.i("tag", "1client开始接收udp");

try {

udpSocket = new DatagramSocket(63002);

} catch (SocketException e) {

e.printStackTrace();

}

DatagramPacket packet = new DatagramPacket(data,data.length);

try {

udpSocket.receive(packet);

} catch (IOException e) {

e.printStackTrace();

}

udpSocket.close();

Log.i("tag","1client接收完成udp");

Log.i("tag", "1client"+data[0]+" "+data+" "+data+""+data);

}

}

}).start();

​客户端发送:

​try {

DatagramSocket udpSocket = new DatagramSocket(63000);

byte[] buf = new byte[256];

buf[0] = 2;

buf = 3;

Log.i("tag", "1client开始发送udp");

InetAddress ip =InetAddress.getByName(CommonConfig.SERVER_IP.trim());

DatagramPacket packet = new DatagramPacket(buf, buf.length, ip,CommonConfig.AUDIO_SERVER_UP_PORT);

udpSocket.send(packet);

udpSocket.close();

Log.i("tag", "1client完成发送udp");

} catch (SocketException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

在这里发送的是buf数组。

server的接收和发送:

byte[] data = new byte[256];

System.out.print("开始接收udp ");

DatagramSocket udpUpSocket = new DatagramSocket(20086);

DatagramPacket upPacket = new DatagramPacket(data,data.length);

udpUpSocket.receive(upPacket);

InetAddress add1 = upPacket.getAddress();

int port1 = upPacket.getPort();

System.out.print(" "+port1+" "+add1);

udpUpSocket.close();

System.out.println("接收完成udp");

System.out.println(data[0]+" "+data+" "+data+""+data);

System.out.print("开始发送udp ");

DatagramSocket udpDownSocket = new DatagramSocket(20087);

InetAddress ip =InetAddress.getByName("192.168.1.133".trim());

DatagramPacket downPacket = new DatagramPacket(data,data.length,ip,63002);

InetAddress add2 = downPacket.getAddress();

int port2 = downPacket.getPort();

System.out.print(" "+port2+" "+add2);

udpDownSocket.send(downPacket);

udpDownSocket.close();

System.out.println("发送完成udp");

上一篇  下一篇

I 相关 / Other

恩里克:明明可以做段子手,偏要去当教练

PO主在看完昨天恩叔的发布会之后,再次被他的机智萌得不要不要的,遂萌发了整理恩叔语录的想法。遥想恩叔刚

你是最有力气的妈妈……

今天早上睡了个懒觉——确切的说,打算睡个懒觉,却比平时醒的都早了,因为今天休息爸爸收拾一下上班了,妈

《精灵的守护者们》活动相关

感谢各位一直以来对《梦王国与沉睡的100王子》的支持!
从明天开始,游戏内将开放《精灵的守护者们》活动,

台东池上,台湾的慢城!池上的美,云最知道!

2015-11-03 台湾达人 台湾达人
池上的美,云最知道。云忘记时间,无所谓,无所事事,轻松地来轻松去。“云

极端穆斯林是个怎样的生意

(加拿大某华人老油条写在西西河上的文章。)极端穆斯林体系是个多大的生意有人说,在魁北克一个地方,穆斯

I 热点 / Hot