如何在Android中将UDP数据报转换为RTP流

时间:2019-04-29 20:25:07

标签: android udp rtp datagram

我正在开发一个音频流应用程序,我在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();
            }
        }
    });

我希望有人为我的问题提供指导或建议解决方案,以便我可以转换协议,而不是从头开始编写代码。

0 个答案:

没有答案