Ich habe einen Hinweis von @lyron bekommen.
Zuerst, öffnen Sie die Frontkamera.
int cameraId = -1;
int camNums = Camera.getNumberOfCameras();
for(int i = 0 ; i < camNums ; i++) {
CameraInfo info = new CameraInfo();
Camera.getCameraInfo(i, info);
if(info.facing == CameraInfo.CAMERA_FACING_FRONT) {
cameraId = i;
break;
}
}
mCamera = Camera.open(cameraId);
mCamera.unlock();
Ich muss die Frontkamera wie oben verwenden.
Und VERGESSEN SIE NICHT, um die Kamera zu entsperren.
Wenn nicht, sehen Sie unten Fehler.
E/MediaRecorder(15509): start failed: -19
E/SampleVideoRecorder(15509): Exception :
E/SampleVideoRecorder(15509): java.lang.RuntimeException: start failed.
E/SampleVideoRecorder(15509): at android.media.MediaRecorder.start(Native Method)
Zweite, stellen Sie die Kamera aus, bevor die anderen wie diese Einstellung.
recorder = new MediaRecorder();
recorder.setCamera(mCamera); // like this!
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setVideoSize(2560, 1440);
recorder.setVideoFrameRate(30);
recorder.setPreviewDisplay(holder.getSurface());
recorder.setOutputFile(s_dir);
try {
recorder.prepare();
recorder.start();
} catch(Exception e) {
Log.e("SampleVideoRecorder", "Exception : ", e);
recorder.release();
recorder = null;
}
Someone says dass setCamera() sollte vor (genannt werden vorbereitet).
Aber ich sehe meinen Code funktioniert.
Darf ich nach dem Grund fragen, warum diese Antwort herabgesetzt wurde? Wenn man bedenkt, dass ich auf diese Frage geantwortet habe, ist die Android-Kamera die richtige Referenz für diese Frage geblieben. Ist es nur eine Frage von jemandem, der faul ist, nach dem zu suchen, was er dort braucht? Oder hast du lieber einen Kommentar als eine Antwort? – gamadeus
Das Bereitstellen der Links, insbesondere außerhalb der Stackexchange-Netzwerkwebsite, ohne zusätzliche Erklärungen ist nicht die beste Vorgehensweise bei der Beantwortung der Frage. Wenn die Verbindung unterbrochen ist, wird Ihre Antwort nutzlos sein (tatsächlich ist Ihr Link jetzt kaputt. Bitte überprüfen). – melvynkim