从android方面来说,我认为最好的解决方案是在您的计算机中打开与服务的连接:
URL url = new URL("http://192.186.0.1/path/to/service");
URLConnection connection = url.openConnection();
将其作为 OutputStream 获取:
OutputStream out = new BufferedStream(connection.getOutputStream());
然后使用 aAudioRecord
发送记录的数据:
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 美分;我很想知道它是否有效。;)