从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美分我很想知道它是否有效。 😉