aus der Android Seite, ich glaube, die beste Lösung, um die Verbindung zum Dienst in Ihrem Computer zu öffnen ist: es
URL url = new URL("http://192.186.0.1/path/to/service");
URLConnection connection = url.openConnection();
Erhalten Sie als Output:
OutputStream out = new BufferedStream(connection.getOutputStream());
und dann Verwenden Sie einen AudioRecord
, um die aufgezeichneten Daten zu senden:
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);
}
All dies sollte natürlich in einem separaten Thread erfolgen, um einen Absturz der App und einen Mechanismus zu vermeiden, wenn die Aufzeichnung stoppt oder die Verbindung unterbrochen wird. Auch ich bin mir ziemlich sicher, dass es über WLAN funktionieren sollte, obwohl ich nicht sicher bin, ob es mit Bluetooth dasselbe sein wird (obwohl die meisten Geräte mit BT jetzt wlan haben und Sie mehr Bandbreite bekommen)
Ich habe nicht Ich habe diesen Code getestet, also bin ich nicht 100% sicher, dass es funktioniert.
Das nächste Ding wird auf der Maschine sein, um das Audio in die Wunschanwendung zu übertragen, aber das ist über meiner Erfahrung. Ich stelle mir vor, dass du einen virtuellen Fahrer oder so etwas machen musst. Auch muss der umgekehrte Mechanismus für die Audio von der Desktop-App in das Telefon gesendet werden (Ich bin eher daran interessiert, da würde eine schöne drahtlose Headset zum Ansehen von Filmen als auch machen).
Hier sind meine 2 Cent; Ich bin gespannt, ob es funktioniert. ;)
Ich möchte ähnliche Funktionalität. Ich möchte Anrufe vom PC machen lassen, die Audio (VOICE_DOWNLINK) als Lautsprecher zum PC zurückgeschickt haben. aber behalten Sie das Mikrofon am Telefon – Mark
Dies ist keine triviale Anfrage; in bluez bei einem minumum müssten Sie a) die Freisprechfunktion zum SDP-Datensatz hinzufügen. b) Entfernen Sie das Audio-Gateway vom SDP-Datensatz. c) Ändern Sie die Geräteklasse des Telefons, um ein Headset nachzuahmen. Dies ist nur eine Verbindung über das Freisprechprofil. Was das Senden von Audio usw. angeht, ist das eine weitere Herausforderung. Ich bin mir nicht sicher, ob Bluedroid überhaupt Unterstützung dafür hat, vielleicht brauchen Sie einen angepassten Kernel. – TwinPrimesAreEz