我正在开发一个音频流应用程序,我在Android中有两个用于发送和接收的线程,我们在其中使用UDP(数据报)进行发送和接收,希望将要使用RTP协议发送和接收的数据包转移。
但是我无法使用标准的android.net.rtp,AudioStream,AudioGroup,但由于我的自定义逻辑无济于事。
所以我需要一些建议,以使用RTP删除数据报以及发送和接收数据。
Thread recordingThread = new Thread(new Runnable() {
@Override
public void run() {
try {
DatagramPacket dp;
while (isRecording) {
arec.read(buffer, 0, buffersize);
InetAddress inetAddress = InetAddress.getByName(ipAddressEditText.getText().toString());
dp = new DatagramPacket(buffer, buffer.length, inetAddress, Integer.parseInt(portNumberEditText.getText().toString()));
datagramSocket.setBroadcast(true);
datagramSocket.send(dp);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
Thread playingThread = new Thread(new Runnable() {
@Override
public void run() {
DatagramPacket dp;
try {
while (isRecording) {
dp = new DatagramPacket(myMessageArray, myMessageArray.length);
datagramSocket.receive(dp);
String stringData = new String(myMessageArray, 0, dp.getLength());
System.out.print("abc: " + stringData);
/* ObjectInputStream ois = new ObjectInputStream(is);
myMessageArray = (short[]) ois.readObject();
System.out.println("From Cloud: " + myMessageArray);*/
atrack.write(myMessageArray, 0, myMessageArray.length);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
我希望有人为我的问题提供指导或建议解决方案,以便我可以转换协议,而不是从头开始编写代码。