从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);
}
所有这一切都应该在一个单独的线程上完成,以避免崩溃应用程序和一个机制来处理录制停止或连接丢失 . 此外,我很确定它应该可以在wifi上工作,虽然我不确定它是否与蓝牙相同(虽然大多数设备与BT现在有wifi天,你获得更多的带宽)
我没有测试过这段代码,所以我不能100%肯定它会起作用 .
接下来的事情将是在机器上将音频传输到欲望的应用程序,但这超出了我的经验 . 我想你将不得不做一个虚拟驱动程序或类似的东西 . 还必须对从桌面应用程序发送到手机的音频执行反向机制(我对这部分非常感兴趣,因为它也会制作一个很好的无线耳机来观看电影) .
这是我的2美分;我很想知道它是否有效 . ;)