Прямая передача аудио через TCP в Android

Я пытаюсь отправить живое аудио из одного приложения в другое приложение через TCP. Я могу подключить гнездо и подключить их, но я не получаю никакого звука. Пожалуйста, помогите мне. Это код отправителя.

public void startStreaming() {

        Thread streamThread = new Thread(new Runnable() {


            @Override
            public void run() {
                try {

                    socket = new ServerSocket(port);
                    s = socket.accept();

                    Log.d("VS", "Socket Created");

                    byte[] buffer = new byte[1024];
                    BufferedOutputStream out = new BufferedOutputStream(new ByteArrayOutputStream(1024));

                    int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);

                    Log.d("VS","Buffer created of size " + minBufSize);

                    recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,sampleRate,channelConfig,audioFormat,minBufSize);
                    Log.d("VS", "Recorder initialized");

                    recorder.startRecording();



                    while(status == true) {


                        recorder.read(buffer, 0, buffer.length);

                        Log.d("VS", "Packet created");

                        out.write(buffer);
                        out.flush();

                        Log.d("VS", "Packet Sent");



                    }



                } catch(UnknownHostException e) {
                    Log.e("VS", "UnknownHostException");
                } catch (IOException e) {
                    Log.e("VS", "IOException");
                }


            }

        });
        streamThread.start();
    }
}

Это код приемника.

public void receiveButton(View view){
            status = true;
            Log.d("VR","start receiving called");
            startReceiving();

        }

    public void startReceiving() {

        Thread receiveThread = new Thread (new Runnable() {

            @Override
            public void run() {

                try {

                    socket = new Socket("192.168.0.3",50005);
                    Log.d("VR", "Socket Created1");


                    byte[] buffer = new byte[1024];

                    BufferedInputStream in = new BufferedInputStream(new ByteArrayInputStream(buffer));

                    int minBufSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);

                    speaker = new AudioTrack(AudioManager.STREAM_MUSIC,sampleRate,channelConfig,audioFormat,minBufSize,AudioTrack.MODE_STREAM);

                    speaker.play();

                    while(status == true) {


                        Log.d("VR", "Packet Received");

                        in.read(buffer);

                        Log.d("VR", "Packet data read into buffer");


                        speaker.write(buffer, 0, buffer.length);
                        Log.d("VR", "Writing buffer content to speaker");

                    }


                } catch (SocketException e) {
                    Log.e("VR", "SocketException");
                } catch (UnknownHostException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }


            }

        });
        receiveThread.start();
    }

}

Пожалуйста, помогите мне. Во время просмотра журнала он чувствует, что код работает нормально, но звука нет.

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

эти разрешения также добавляются в manifest.xml

java,android,

1
Яндекс.Метрика