С андроида стороны, я думаю, что лучшим решением будет открыть подключение к услуге в вашем компьютере:
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 цента; Я очень хочу знать, работает ли это. ;)
Я хочу похожую funcationality. Я хочу, чтобы звонки с компьютера имели аудио (VOICE_DOWNLINK), отправленные обратно на компьютер в качестве громкоговорителя. но держите микрофон по телефону – Mark
Это не тривиальный запрос; в bluez в minumum вам нужно будет: a) добавить роль громкой связи в запись SDP. b) Удалите аудио-шлюз из записи SDP. c) Измените класс устройства телефона, чтобы имитировать гарнитуру. Это просто подключение к профилю громкой связи. Что касается отправки звука и т. Д., Это еще одна проблема. Я не уверен, что у bluedroid даже есть поддержка для этого, вам может понадобиться настраиваемое ядро. – TwinPrimesAreEz