Со стороны Android, я думаю, лучшее решение - открыть соединение со службой на вашем компьютере:
URL url = new URL("http://192.186.0.1/path/to/service");
URLConnection connection = url.openConnection();
Получить как OutputStream:
OutputStream out = new BufferedStream(connection.getOutputStream());
изатем используйте AudioRecord
для отправки записанных данных:
public static final int DEFAULT_SAMPLE_RATE = 8000;
private static final int DEFAULT_BUFFER_SIZE = 4096;
private static final int CALLBACK_PERIOD = 4000;
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.DEFAULT,
DEFAULT_SAMPLE_RATE, AudioFormat.CHANNEL_CONFIGURATION_DEFAULT,
AudioFormat.ENCODING_DEFAULT, DEFAULT_BUFFER_SIZE);
recorder.setPositionNotificationPeriod(CALLBACK_PERIOD);
int bytesRead = 0;
ByteBuffer buffer = ByteBuffer.allocateDirect(DEFAULT_BUFFER_SIZE);
while ((bytesRead = recorder.read(buffer, DEFAULT_BUFFER_SIZE)) > 0) {
out.write(buffer.array(), 0, bytesRead);
}
Конечно, все это должно быть сделано в отдельном потоке, чтобы избежать сбоя приложения и механизма обработки, когда запись останавливается или соединениепотерян.Кроме того, я почти уверен, что он должен работать через Wi-Fi, хотя я не уверен, будет ли он таким же с Bluetooth (хотя большинство устройств с BT имеют Wi-Fi уже несколько дней, и вы получаете большую пропускную способность)
У меня естьне проверял этот код, поэтому я не уверен на 100%, что он будет работать.
Следующая вещь будет на машине для передачи аудио в приложение желаний, но это выше моего опыта.Я полагаю, вам придется сделать виртуальный драйвер или что-то в этом роде.Также нужно будет сделать обратный механизм для звука, передаваемого из настольного приложения в телефон (я довольно заинтересован в этой части, поскольку хотел бы также создать хорошую беспроводную гарнитуру для просмотра фильмов).
Вотмои 2 цента;Я хочу знать, если это работает.;)