Ich versuche, meiner App mit MediaRecorder in Android eine Videoaufzeichnungsfunktion hinzuzufügen, aber das resultierende Video sieht mit grünen Linien beschädigt aus (Audio ist in Ordnung). Der folgende Code ist, was ich verwenden, um das MediaRecorder-Objekt zu initialisieren:
mMediaRecorder = new MediaRecorder();
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setOutputFile(Utility.CAPTURE_VIDEO_FILENAME);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
mMediaRecorder.setMaxDuration(60000);
mMediaRecorder.setVideoFrameRate(20);
mMediaRecorder.setMaxFileSize(5000000);
mMediaRecorder.setVideoSize(352, 288);
mMediaRecorder.setPreviewDisplay(mPreview.mHolder.getSurface());
mMediaRecorder.prepare();
mMediaRecorder.start();
Ich habe mir die Vorschläge bereits angesehen aquí y aquí aber sie scheinen meiner Sache nicht zu helfen. Ich denke jedoch, dass es etwas mit der falschen Videogröße zu tun haben könnte. Meine Frage lautet also: Gibt es eine gute Möglichkeit, kompatible Videogrößen zu erhalten, wenn ich API-Level 7 verwende? Soweit ich weiß, kann ich CamcorderProfile verwenden, wenn ich API-Stufe 8 verwende, aber nicht in Stufe 7.