MediaRecorder setVideoSize zeigt ein unterschiedliches Verhalten in verschiedenen Geräten

8

Ich benutze Media Recorder, um Videos in einer Android-App aufzunehmen.

%Vor%

Das Problem liegt in der Zeile

%Vor%

In HTC und Xperia funktioniert setVideoSize gut (funktioniert nur, wenn ich diese Zeile nicht kommentiere). Aber in Nexus und Note funktioniert setVideoSize nicht (funktioniert nur, wenn ich diese Zeile kommentiere).

Was muss ich tun, damit die App in all diesen Geräten korrekt ausgeführt wird?

    
Deepzz 17.05.2013, 10:04
quelle

2 Antworten

4

Sie müssen verstehen, dass die Vorschau und das tatsächlich aufgenommene Video zwei verschiedene Dinge sind. Auch Vorschaugrößen und Videogrößen sind zwei verschiedene Parameter. Was Sie im Sucher sehen, ist im Wesentlichen die Vorschau, aber es wird nicht wirklich aufgenommen.

  1. Wenn Sie eine Kamera starten, legen Sie die Vorschaugröße für die Kamera fest. Sie müssen jedoch die unterstützten Vorschaugrößen abfragen und eine dieser Größen festlegen.

    Kamera Kamera = camera.open (); Liste psizes = camera.getParameters ()                 .getSupportedPreviewSizes ();

  2. Nachdem Sie die Vorschau eingerichtet haben, können Sie die Aufnahme mit einem MediaRecorder starten, und die Videogröße kann auf den Medienrekorder eingestellt werden, und es wird die tatsächliche Größe des aufgenommenen Videos festgelegt. Auch hier sollten Sie eine der unterstützten Videogrößen einstellen.

    Listengröße = camera.getParameters ()                 .getSupportedVideoSizes ();

und dann können Sie eine davon auf den Medienrecorder einstellen

%Vor%

Denken Sie also immer daran, nach den unterstützten Größen zu suchen, da sonst ein App-Absturz auftreten kann.

    
codeFood 04.10.2013 07:28
quelle
0

Videogrößen in einem Gerät entsprechen Vorschaugrößen. Sie müssen zuerst prüfen, ob die von Ihnen eingestellte Videogröße verfügbar ist oder nicht. Videogrößen in verschiedenen Geräten können unterschiedlich sein. Überprüfen Sie daher zuerst die verfügbaren Vorschaugrößen mit getSupportedPreviewSizes () und legen Sie dann die Videogröße fest. Dies wird eine Liste zurückgeben. Sie müssen nur eine von ihnen auswählen.

    
Amrendra 27.06.2013 08:39
quelle

Tags und Links