Android側から見ると、コンピューターでサービスへの接続を開くのが最善の解決策だと思います。
URL url = new URL("http://192.186.0.1/path/to/service");
URLConnection connection = url.openConnection();
OutputStream として取得します。
OutputStream out = new BufferedStream(connection.getOutputStream());
次に、 a を使用し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);
}
もちろん、これはすべて別のスレッドで実行して、アプリのクラッシュを回避し、記録が停止したり接続が失われたりしたときに処理するメカニズムを実行する必要があります。また、Bluetooth で同じになるかどうかはわかりませんが、Wi-Fi で動作するはずだと確信しています (ただし、BT を搭載したほとんどのデバイスには Wi-Fi があり、より多くの帯域幅が得られます)。
私はこのコードをテストしていないので、100% うまくいくとは確信していません。
次の作業は、マシン上でオーディオを欲望アプリに転送することですが、それは私の経験を超えています. 仮想ドライバーなどを実行する必要があると思います。また、デスクトップ アプリから電話に送信されるオーディオに対して逆のメカニズムを実行する必要があります (映画を見るための優れたワイヤレス ヘッドセットにもなるので、私はその部分にかなり興味があります)。
これが私の 2 セントです。それが機能するかどうか知りたいです。;)