Ich möchte den Benutzern eine Option zum Einstellen unterschiedlicher Auflösungen geben.setVideoSize() stürzt mit hohen Auflösungen ab
Ich habe diese Lösung versucht
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_720P);
....
....
mCamera.unlock();
recorder.setCamera(mCamera);
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setProfile(camcorderProfile);
Es funktionierte perfekt: schöne Qualität und alles ...
Als ich es
camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);
gesetzt
mit FLASH auf, Das Video kam mit grünlichen und einigen anderen seltsamen Farben heraus.
Ich lese online und die Leute sagten, es ist, weil QUALITY_480P wahrscheinlich nicht auf meinem Telefon unterstützt wird. Ok, es macht Sinn.
Daher begann ich auf der anderen Lösung arbeiten, also habe ich versucht ....
recorder.setVideoSize(640, 480);
Es ist großartig gearbeitet,
aber das Video sah sehr hässlich.
Als nächstes habe ich nach einer unterstützten Videoliste gesucht.
List<Size> GetSupportedVideosResolutions = params.getSupportedVideoSizes();
Auflösung: 1280x720 ist in der Liste, so
Ich habe versucht, die folgenden Einstellungen:
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoSize(1280,720);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
Es gab mir einen Runtime Fehler.
Die Frage ist
Warum kann es mir nicht, die höheren Bildschirmauflösungen, die auf dem Telefon verfügbar sind?
Jede Hilfe wäre sehr dankbar,
Danke.
Edit: hinzugefügt Fehlerprotokoll
04-18 17:40:07.391: E/AndroidRuntime(30191): java.lang.RuntimeException: start failed.
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.media.MediaRecorder.start(Native Method)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.prepare_StartRecorder(VideoActivity.java:1009)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity.Recorder_Start_Stop(VideoActivity.java:1102)
04-18 17:40:07.391: E/AndroidRuntime(30191): at test.com.VideoActivity$6.onClick(VideoActivity.java:246)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.view.View.performClick(View.java:4489)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.widget.CompoundButton.performClick(CompoundButton.java:104)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.view.View$PerformClick.run(View.java:18803)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Handler.handleCallback(Handler.java:730)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Handler.dispatchMessage(Handler.java:92)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.os.Looper.loop(Looper.java:137)
04-18 17:40:07.391: E/AndroidRuntime(30191): at android.app.ActivityThread.main(ActivityThread.java:5493)
04-18 17:40:07.391: E/AndroidRuntime(30191): at java.lang.reflect.Method.invokeNative(Native Method)
04-18 17:40:07.391: E/AndroidRuntime(30191): at java.lang.reflect.Method.invoke(Method.java:525)
04-18 17:40:07.391: E/AndroidRuntime(30191): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
04-18 17:40:07.391: E/AndroidRuntime(30191): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
04-18 17:40:07.391: E/AndroidRuntime(30191): at dalvik.system.NativeStart.main(Native Method)
Da 720p 1280x720 ist, was erwartetest du anders als deinen letzten Codeblock verglichen mit dem ersten Codeblock, den du gesagt hast, hat es gut funktioniert? IOW, wenn Sie 1280x720 ausgeben wollen, haben Sie bereits funktionierenden Code dafür. Darüber hinaus können wir Ihnen nicht mit einer Ausnahme behilflich sein, es sei denn, Sie buchen den Stack-Trace und geben an, welche Zeilen in diesem Stack-Trace mit welchen Zeilen in Ihrem Code in Ihrer Frage übereinstimmen. – CommonsWare
Vielen Dank für den Kommentar. Ich möchte den Benutzern die Möglichkeit geben, unterschiedliche Auflösungen zu wählen. 720P war der harte Code. 720P wird möglicherweise nicht von einem anderen Gerät unterstützt. Außerdem erwähnte ich, dass bei 480P ein Problem mit Flash auftrat. Ich könnte 1920x1080 und den gleichen Fehler versuchen. – Iam1414
Welches Gerät testen Sie? –