Ich habe eine benutzerdefinierte Vollbildkamera im Querformat. Die Gerätegröße beträgt 1024 x 600.
Liste der unterstützten Vorschaugrößen
Breite x Höhe
176 x 144
320 x 240
352 x 288
528 x 432
640 x 480
1024 x 576
1024 x 768
Unterstützte Videogrößenliste
Breite x Höhe
176 x 144
320 x 240
352 x 288
640 x 480
720 x 480
1280 x 720
Ohne setPreviewSize wird meine Vorschau von oben und unten und komprimiert länger von links und rechts.
Meine Vorschau getOptimalPreviewSize gibt die Größe 1024 x 576 zurück. und die nahe Videogröße ist 1280 x 720
Also, nach dem Einstellen der Videogröße und starten Sie die Videoaufnahme
mediaRecorder.setVideoSize (1280, 720);
ändert sich in der Oberflächenansicht (in diesem Fall gezoomt).
Ich frage mich, wie man Größenunterschiedsprobleme lösen kann und vor und nach der Aufnahme immer die gleiche Vorschau sehen?
Tatsächlich ist dies ein kniffliges Problem und variiert mit der Hardware. Einfach gesagt, ist es manchmal unmöglich, auf einigen Hardware-Anbietern zu erreichen.
Hardwarehersteller legen fest, wie die Unterschiede zwischen der Auflösung des Rohkamerasensors, der Größe der angeforderten Vorschau und der Videoaufnahme und der nachfolgenden Verarbeitung (Größenänderung mit Interpolation) für die Vorschau in die Bildschirmauflösung zu handhaben sind / p>
Normalerweise beinhaltet die "Handhabung":
Beide sind normalerweise so programmiert, dass sie entweder auf dedizierter Hardware oder auf der GPU laufen. System-on-Chip (SoC) bedeutet, dass neben der CPU und der GPU eine Menge dedizierter Hardware vorhanden ist, die der Hersteller (und nur der Hersteller) für die Verarbeitung verwenden kann.
Wenn Sie ein Gerät verwenden, das das Zuschneiden als Mittel zum Anpassen der Größe verwendet, stimmen die Vorschau und die endgültige Bild / Video-Grenze nicht überein. Sie können nichts dagegen tun, es sei denn, Sie passen zusätzlichen Verarbeitungscode für dieses Gerätemodell an.
Außerdem werden nicht alle Vorschaugrößen im selben Seitenverhältnis wie der Kamerasensor zurückgegeben. Dies sollte offensichtlich sein, da die Vorschaugrößen selbst eine Mischung aus Seitenverhältnissen haben.
Ich würde einfach bei 1280x720 bleiben. Ich bin mir sicher, dass es einen erheblichen Leistungseinbruch gibt, wenn Sie diese Vorschaugröße verwenden, während Sie kein Video aufnehmen.
Lassen Sie mich erklären: Die Auflösung, die Sie in setPreviewSize()
auswählen, hat zwei Effekte: Sie definiert das Seitenverhältnis des von Ihrer SurfaceView oder TextureView empfangenen Bildes und definiert die Größe des in Camera.PreviewCallback empfangenen Datenpuffers. onPreviewFrame () (wenn Sie setPreviewCallback () verwenden). Diese Auflösung wirkt sich nicht auf die Zeit zum Rendern der Vorschau auf der Oberfläche oder Textur aus, da diese Vorgänge in Hardware ausgeführt werden.
Tags und Links android camera android-camera mediarecorder preview