2016-07-12 22 views
2

Ich verwende eine GLSurfaceView, um die Vorschau der Kamera zu rendern und gleichzeitig mit dem MediaCodec zu codieren.Die Vorschau der GLSurfaceView-Kamera wird nach der Größenänderung verschlüsselt

Irgendwann möchte ich die Größe der GLSurfaceView ändern, um eine größere Vorschau der Kamera zu zeigen. Dazu pausiere ich die Kameravorschau, lege neue Layoutparameter auf die GLSurfaceView an und starte die Kameravorschau neu.

Die GLSurfaceView-Größe wurde erfolgreich geändert, aber die Vorschauansicht hat die gleiche Größe wie zuvor. Der Rest der GLSurfaceView ist mit verschlüsselten Daten gefüllt (siehe angehängtes Bild).

enter image description here

+1

Verwenden der Camera2-API? Ich weiß, dass es die Zieloberflächengröße beachtet, aber ich weiß nicht, ob es Änderungen folgt. – fadden

+0

Nein, mit der ursprünglichen Kamera-API. Ich habe ein kleines Experiment mit einem Ihrer Beispiele in Grafika gemacht. Ich habe das gleiche Ergebnis erhalten, konnte es aber selbst herausfinden, indem ich die Sichtbarkeit auf GONE und dann wieder auf VISIBLE setze. Dieser einfache Trick funktionierte jedoch für mich nicht in meiner eigenen App. Möglicherweise, weil ich etwas mehr mit der Kamera-Vorschau habe, die über einem nachgelagerten Videofeed überlagert wird. In jedem Fall sind neue Anforderungen entstanden, die bedeuten, dass meine Lösung, alles herunterzureißen, ohnehin irgendwie erforderlich ist (Umschaltauflösung usw.), so dass keine verschwendete Anstrengung entsteht. –

Antwort

0

Für alle, die das finden, ich habe nie verwalten mein Problem zu lösen.

Ich musste die gesamte Ansicht, Kamera und Encoder abreißen und alles neu aufbauen.