4 Stimmen

Die Klasse MediaRecorder startet die Audioaufnahme mit leichter Verzögerung

Ich habe ein Problem mit der MediaRecorder-Klasse. Wenn ich die start()-Methode aufrufe, beginnt der Rekorder mit der Aufnahme (Audio), aber mit einer gewissen Verzögerung (die Verzögerung ist ziemlich deutlich - etwa 1 Sekunde). Ich habe dieses Problem auf Android 2.3-Geräten gesehen, insbesondere auf dem Samsung Nexus S. Dieses Problem tritt nicht bei Android 1.6 (G1) oder einer anderen Version von Android-Emulatoren auf. Könnten Sie bitte bestätigen, dass dieses Problem auch bei Ihnen auftritt und ob es eine Lösung für dieses Problem gibt? Ist dies ein dokumentierter Fehler?

0 Stimmen

Haben Sie die Methode prepare() vor start() aufgerufen?

0 Stimmen

Ja, ich rufe die Methode prepare() auf, bevor ich start() aufrufe.

1 Stimmen

Ich erlebe gerade dasselbe. Wenn Sie irgendwelche Updates haben, bitte hier posten. Ich werde das Gleiche tun.

3voto

alalonde Punkte 1733

Dies scheint entweder ein Fehler im MediaRecorder oder in der Firmware des Geräts zu sein. Die gleiche Verzögerung ist in der Standard-Kamera-App zu sehen, die ebenfalls MediaRecorder verwendet. Mir ist auch aufgefallen, dass am Ende jeder Aufnahme zusätzlicher Ton zu hören ist, und zwar nach dem Ende der Videoaufnahme. Allerdings scheinen Video und Audio während des gesamten Videos synchronisiert zu sein. Es ist in etwa so:

   =========================================     Audio being captured
=========================================        Video being captured
|----|----|----|----|----|----|----|----|----|   Time
^                                       ^
start()                               stop()

Der Ton wird also nicht wirklich "verschoben", sondern beginnt und endet einfach hinter der Videoaufnahme.

Ich beobachte die Verzögerung auf einem Motorola Xoom-Tablet mit Honeycomb (Android 3.0).

Siehe einen Fehlerbericht hier: http://code.google.com/p/Android/issues/detail?id=15953

2voto

neelance Punkte 121

Ich habe das Problem aufgespürt (nicht CyanogenMod-bezogen): https://github.com/CyanogenMod/android_frameworks_base/commit/d7f1c3d69274fef8772a663ce1c792fd0466fcc5

Dieser Commit wurde zwischen Android 2.2 und 2.3 eingefügt. Sein Zweck scheint zu sein, den Ton der Standard-Kamera-App beim Start der Aufnahme stumm zu schalten (obwohl 1 Sekunde dafür etwas lang erscheint). Und es sollte den Ton allmählich einblenden, aber die Umsetzung scheint nicht zu funktionieren. Es ist ein harter Schnitt nach 1 Sekunde, können Sie auch versuchen, diese in der Kamera-App.

Ich verstehe wirklich nicht, warum sie es auf dieser Ebene implementiert haben, wo auch andere Anwendungen betroffen sind. Und das Verhalten ist nicht konfigurierbar, so dass ich keine Möglichkeit sehe, das Problem zu umgehen. Wir können nur hoffen, dass es in zukünftigen Versionen behoben wird.

0voto

Alex Punkte 9066

Ich habe den von alalonde verlinkten Android-Fehlerbericht ergänzt. Ich sehe dies als einen Fehler in Android 2.3, da derselbe Code auf 2.2 und früher problemlos läuft. Ich habe ein myTouch 4G, das mit der 2.2-Firmware gut funktionierte. Sobald ich auf Cyanogen Rom auf Basis von 2.3.3 umgestiegen bin, habe ich die 1-Sekunden-Verzögerung bemerkt. Dieselbe Hardware, dieselbe Anwendung, eine andere Betriebssystemversion. Es muss also am Betriebssystem liegen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X