Ich möchte die Videoaufnahme von der Kamera starten, wenn ich auf lyte klicke und die Aufnahme stoppe, wenn ich sie erneut anklicke. Dieser Code macht "myVideo.mp4" Datei aber es ist nicht spielbar. auch ich möchte keine Vorschau anzeigen. kann mir jemand helfen?Video ohne Vorschau aufnehmen
Aktivität Main:
public class ActivityMain extends Activity {
MediaRecorder rec;
static Camera camera;
boolean isRecording = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout lyt = (LinearLayout) findViewById(R.id.lyt);
rec = new MediaRecorder();
lyt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (isRecording) {
// stop recording and release camera
Log.e("TEST", "befor stop");
rec.stop(); // stop the recording
Log.e("TEST", "stop");
releaseMediaRecorder(); // release the MediaRecorder object
camera.lock(); // take camera access back from MediaRecorder
// inform the user that recording has stopped
isRecording = false;
} else {
// initialize video camera
if (prepareVideoRecorder()) {
// Camera is available and unlocked, MediaRecorder is prepared,
// now you can start recording
Log.e("TEST", "befor start");
rec.start();
Log.e("TEST", "start");
// inform the user that recording has started
isRecording = true;
} else {
// prepare didn't work, release the camera
releaseMediaRecorder();
// inform user
}
}
}
});
// Intent intent = new Intent(ActivityMain.this, VideoCapture.class);
// startActivity(intent);
}
private void releaseMediaRecorder() {
if (rec != null) {
// rec.reset(); // clear recorder configuration
rec.release(); // release the recorder object
rec = null;
camera.lock(); // lock camera for later use
Log.e("TEST", "released");
}
}
/** A safe way to get an instance of the Camera object. */
public static Camera getCameraInstance() {
Camera c = null;
try {
c = Camera.open(); // attempt to get a Camera instance
}
catch (Exception e) {
Log.e("TEST", "Camera is not avalable : " + e);
}
return c; // returns null if camera is unavailable
}
private boolean prepareVideoRecorder() {
camera = getCameraInstance();
rec = new MediaRecorder();
// Step 1: Unlock and set camera to MediaRecorder
camera.unlock();
rec.setCamera(camera);
// Step 2: Set sources
rec.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
rec.setVideoSource(MediaRecorder.VideoSource.CAMERA);
// Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
rec.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
// Step 4: Set output file
rec.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath().toString() + "/" + "myVideo.mp4");
// Step 6: Prepare configured MediaRecorder
try {
rec.prepare();
}
catch (IllegalStateException e) {
Log.e("TEST", "IllegalStateException preparing MediaRecorder: " + e.getMessage());
releaseMediaRecorder();
return false;
}
catch (IOException e) {
Log.e("TEST", "IOException preparing MediaRecorder: " + e.getMessage());
releaseMediaRecorder();
return false;
}
return true;
}
}
bezogen werden: http://stackoverflow.com/questions/1252172/android -how-initialize-mediarecorder-ohne-gültige-oberfläche-für-video-previ – muratgu