5

Ich schreibe gerade eine App, die die Aufzeichnung und Echtzeitverarbeitung von Audiodaten fordert. Dazu benutze ich die AudioRecord-Klasse. Das funktioniert alles gut und gut, außer dass die Standardeinstellung für die Aufnahme von Audio auf meinem primären Testgerät, einem Galaxie-Nexus, vom hinteren Lautsprecher aufgenommen wird. Ich gehe davon aus, dass die meisten Standard-Aufnahmequelle die hinteren oder unteren Mikrofone sein wird, denn wenn Sie das Telefon zum Anrufen verwenden, ist Ihr Mund in der Nähe der Unterseite.Android-Audioaufnahme ändern Standardeingabe Quelle

Allerdings erfordert meine App, dass ich aus dem Lautsprecher auf der Vorderseite des Telefons aufzeichnen, und so hoffte ich, jemand könnte mir helfen, wie Sie die AudioRecord-Eingangsquelle programmgesteuert ändern. Ich habe ausgiebig nach der Antwort gesucht.

Einige Dinge, die ich in Betracht gezogen haben, sind:

  • die Audio-Manager-Klasse verwenden und Einschalten der Lautsprecher, wie zum Beispiel:

    AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
    am.setSpeakerphoneOn(true);

  • Ändern des Audiosource-Parameter in der Konstruktion meines AudioRecord Objekt:

    AudioRecord ar = new AudioRecord(AudioSource.????, ..., ..., ..., ...);

  • Ich habe festgestellt, dass die APIs nicht zu genau sind, welche AudioSource-Formate welche sind, also habe ich mich gefragt, ob jemand anderes mit diesem Problem gekämpft hat und mir in die richtige Richtung zeigen könnte.

    Vielen Dank im Voraus,

    +0

    versuchen Sie diese MediaRecorder.AudioSource.VOICE_CALL .. – Sandeep

    +0

    Ich benutze kein MediaRecorder-Objekt obwohl .... – lbrendanl

    Antwort

    0

    Android unterstützt derzeit keine Anrufaufzeichnung unterstützen, so dass ich glaube, dass Sie es nicht aus dem Hörer aufnehmen ändern. Sie sollten jedoch nicht wirklich brauchen, das Mikrofon an der Unterseite des Telefons sollte in der Lage sein, Dinge auf die volle Kapazität aufzunehmen, die Sie brauchen. Um den AudioRecord auf das Mikrofon zu setzen, gehen Sie einfach wie folgt vor:

    AudioRecord ar = new AudioRecord(AudioSource.MIC, ..., ..., ..., ...); 
    

    Damit erhalten Sie die beste Aufnahmequalität.