Что действительно говорит название. Мне нужно прослушать звук с микрофона на телефоне и воспроизвести его в настольном приложении (также код Java) на компьютере.
Использование UDP или TCP не имеет значения для меня, что бы ни работало лучше всего. В любом случае телефон и компьютер будут подключены к одному и тому же NAT, поэтому передача будет работать нормально.
У меня есть четкое представление о том, как отправить потоковые данные с устройства, используя этот код:
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
String host = "10.0.2.2";
int port = 5740;
Socket socket = null;
try {
socket = new Socket(InetAddress.getByName(host), port);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();
Log.d(TAG, "Sending audio for 20 seconds..");
Thread.sleep(20000);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Проблема в том, как мне воспроизвести этот поток в моем java-приложении на ПК?
Или есть лучший способ для потоковой передачи звука?
Я добыл в интернете информацию об этом, но без каких-либо хороших результатов, но наверняка кто-то должен был сделать это раньше?
Заранее благодарим за любую помощь!