2016-10-11 3 views
1

Ich entwickle eine Android App basierend auf Ton- und Videoaufzeichnungen. Ich möchte eine Echtzeit-Wiedergabe des Mikrofon-Audios in den Kopfhörern erhalten, während ich Video und Ton in der Vorschau sehe und festhalte.Android: Rohaudio aufnehmen und Video gleichzeitig aufnehmen

Was ich jetzt, arbeitete gut allein:

1) verwendet Bibliothek mit Superkräften, um Audio und es zurück in Echtzeit (während der Vorschau und Aufzeichnung zu spielen). Hinter der Szene tut es direkt mit C++ die Arbeit von AudioRecord, indem es den Puffer zum Ausgang (Kopfhörer) schiebt. Ziel ist es, Audioeffekte in Echtzeit auf den Rohton anzuwenden.

2) erfassen das Video mit mediaRecorder

Wenn die Audiowiedergabe läuft, ich versuche, die Videoaufzeichnung zu starten, stürzt Start:

E/MediaRecorder: start failed: -2147483648 

Ich stelle mir vor, dass ich nicht zwei Aufnahme starten können gleichzeitig verarbeiten. Ich denke, die Verwendung der AudioRecord- oder Superpowered-Lib ist eine gute Möglichkeit, das Rohaudio zu verarbeiten, aber ich kann nicht herausfinden, wie man Video aufnimmt, ohne mit der aktuellen Audioaufnahme in Konflikt zu geraten.

Also gibt es eine Möglichkeit, meine Funktion zu erreichen?

(minSdk 16)

+0

Ich kann beide gleichzeitig mit dem MediaRecorder ohne audioSource für Video aufnehmen (und die Komplexität von MediaCodec ohne MediaMuxer als api16 vermeiden) und meine Superpowered lib für das Audio. Danach füge ich meine zwei Dateien mit ffmpeg zusammen. – ddp

Antwort

1

Nach bigflake

Die MediaCodec Klasse wurde zuerst in Android 4.1 (API 16) zur Verfügung. Es wurde hinzugefügt, um direkten Zugriff auf die Media-Codecs auf dem Gerät zu ermöglichen.

In Android 4.3 (API 18) wurde MediaCodec erweitert, um eine Eingabe über eine Oberfläche (über die createInputSurface-Methode) bereitzustellen. Dies ermöglicht die Eingabe von einer Kameravorschau oder OpenGL ES-Rendering.

Also, wenn es möglich ist, bitte denken Sie über MinSDK bis 18 zu erhöhen und AudioVideoRecordingSample oder HWEncoderExperiments als Beispiele.

+0

Eigentlich kann ich nicht auf 18 erhöhen. Ich schaffe es, die Vorschau zu bekommen – ddp

+0

Ich schaffe es, die Vorschau der Kamera auf einem SurfaceView mit MediaCodec zu bekommen, es ist ein guter Anfang. Für den Rekord werde ich sicher in einer Datei zur gleichen Zeit schreiben. Normalerweise kann mein Audioteil gleichzeitig aufnehmen. – ddp

+0

Es gibt eine Latenz zwischen Audio und Video –

Verwandte Themen