Problem mit Android MediaRecorder setVideoSize ()

Kann android MediaRecorder Video mit einer Auflösung von mehr als 320*240 erfassen?

Als ich MediaRecorder::setVideoSize() benutzte, um die Video-Größe einzustellen, war das aufgenommene Video alle bei einer Auflösung von 320*240 . Was noch schlimmer ist, die höheren können kein klares Video bekommen, sie waren irgendwie grünlich. (Geber verwendet wird h263 , Format ist mpeg4 )

  • Android Custom Layout - onDraw () wird niemals angerufen
  • Irgendein Verhaltensunterschied von diesen leicht unterschiedlichen staatlichen Ziehbaren?
  • Ist es möglich, eine ScrollView mit einem ConstraintLayout im Blueprint-Modus zu scrollen?
  • Wie man InfoWindow mit Android Maps Utility Library für Android zeigt
  • Unterschied zwischen dem Hauptfaden und dem UI-Thread
  • Warum Material entworfen App ist langsamer als Legacy Holo entworfen app
  • Android-Version hier verwendet wird 1.6

    Könnten Sie mir bitte jemand helfen?

  • OnCreateView () wird zu oft in benutzerdefinierter Präferenz aufgerufen
  • EditText Label?
  • Proguard.cfg Fehlt
  • Richtige Art der Einrichtung von Cache für OkHttp in Android
  • OnClick auf ViewPager nicht ausgelöst
  • Wie zu zentrieren Layout auf vertikale in Android durch Java-Code?
  • 2 Solutions collect form web for “Problem mit Android MediaRecorder setVideoSize ()”

    Ich hatte ein Problem ähnlich dem, was hier beschrieben wird. Ich stellte mir heraus, dass ich meinen Code etwas umstrukturieren musste, bevor ich die Videogröße anpassen konnte.

    Wichtig ist, dass setVideoSize () vor setVideoEncoder () aufgerufen wird. Ich kann das nicht in der Dokumentation finden, aber es hat meine Probleme mit der Einstellung einer bestimmten Videoauflösung gelöst. Beachten Sie auch, dass setOutputFormat () vor setVideoSize () aufgerufen werden soll.

    Als Seitenhinweis gilt das gleiche für setVideoFrameRate (). Wenn es nicht vor setVideoEncoder () aufgerufen wird, wird es keinen Einfluss haben.

    Dies wurde mit Android 2.3.3 getestet

    Hier ist ein Codebeispiel:

     recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setVideoSize(640,480); recorder.setVideoFrameRate(30); recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 

    Zuerst willst du bestimmen, was deine Kamera unterstützt. Versuchen:

      List<String> anti = params.getSupportedAntibanding(); List<String> color = params.getSupportedColorEffects(); List<String> focus = params.getSupportedFocusModes(); List<String> flash = params.getSupportedFlashModes(); List<Size> previewSize = params.getSupportedPreviewSizes(); List<Size> sizes = params.getSupportedPictureSizes(); List<Integer> frameRates = params.getSupportedPreviewFrameRates(); List<Integer> pictureFormats = params.getSupportedPictureFormats(); List<String> scene = params.getSupportedSceneModes(); List<String> white = params.getSupportedWhiteBalance(); 

    Dies wird Ihnen sagen, alle der Kamera unterstützt Parameter. Zweitens Stellen Sie sicher, dass Sie Ihren MediaRecorder richtig initialisieren, sehen Sie die Google-Dokumentation für den Auftrag, in dem Sie den MediaRecorder einstellen müssen. Auch wenn Ihr Camera.setPreviewSize und MediaRecorder.setVideoSize unterschiedlich sind, kann es ungerades Verhalten verursachen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.