Ich habe eine opensource camera für Google Glas geschrieben, aber einige der Leute, die es verwendet haben berichtet, dass das Video aufgezeichnet nicht richtig für längere Videos gespeichert wird.Android Media Recorder nicht lange Videos auf Google Glass
ich nicht Informationen in Bezug auf eine solche Einschränkung in der Android-Dokumentation
Also Beim Check herausfinden konnte, fand ich, dass für Videos von mehr als 26 minutes
, die Videodatei in Glass gerettet wurde und seine Größe war um 2.7 GB
aber seine Dauer war 0:00
. Und es konnte nicht mit jedem Videoplayer abgespielt werden.
Also ich frage mich, warum ist das? Warum wird das Video richtig aufgenommen für duration < 26 minutes
und wird für längere Videos durcheinander gebracht.
-Code Video-Aufnahme zu starten ist
/**
* Initialize video recorder to record video
*/
private void initRecorder() {
try {
File dir = new File(Environment.getExternalStorageDirectory()
+ File.separator + Environment.DIRECTORY_PICTURES
+ File.separator + "My Videos");
if (!dir.exists()) {
dir.mkdirs();
}
videofile = new File(dir, "video.mp4");
recorder.setCamera(mCamera);
// Step 2: Set sources
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
recorder.setProfile(CamcorderProfile
.get(CamcorderProfile.QUALITY_HIGH));
// Step 4: Set output file
recorder.setOutputFile(videofile.getAbsolutePath());
// Step 5: Set the preview output
recorder.setPreviewDisplay(mPreview.getHolder().getSurface());
// Step 6: Prepare configured MediaRecorder
recorder.setMaxDuration(3600* 1000);
recorder.setMaxFileSize(-1);
recorder.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(MediaRecorder mr, int what, int extra) {
Log.e("Error Recording", what+" Extra "+extra);
}
});
recorder.setOnInfoListener(new OnInfoListener() {
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
endVideoRecording();
}
}
});
recorder.prepare();
recorder.start();
mOverlay.setMode(Mode.RECORDING);
} catch (Exception e) {
if (e != null && e.getMessage() != null)
Log.e("Error Starting CuXtom Camera for video recording",
e.getMessage());
}
}