Вы не используете сокет. Вы должны получить код приемника, который вы должны использовать socket.getIntpuStreamer (), и использовать его для чтения данных и сохранения их в буфере.
Я пытаюсь отправить живое аудио из одного приложения в другое приложение через 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