Hallo ich habe diese Klasse geschrieben um im Hintergrund Videos aufzuzeichen.
Java
public class VideoRecorder{
private Camera camera = null;
private MediaRecorder mediaRecorder = null;
public void onDestroy()
{
//MUST CALLED ON DESTROY
resetRecorder();
}
public void start()
{
setupMediaRecorder();
mediaRecorder.start();
}
public void setupMediaRecorder()
{
try {
mediaRecorder = new MediaRecorder();
camera = Camera.open();
} catch (Exception e) {
e.printStackTrace();
}
camera.unlock();
//------------------------------------------------------------------//
// set Preview Display() //
//------------------------------------------------------------------//
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
//SETTINGS
mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
mediaRecorder.setOrientationHint(90);
//SETTINGS
File file = new File(Environment.getExternalStorageDirectory()+"/Video/");
if(!file.exists())
file.mkdirs();
mediaRecorder.setOutputFile(Environment.getExternalStorageDirectory() + "/Video/Video " + DateFormat.format("yyyy-MM-dd_kk-mm-ss", new Date().getTime()) + ".mp4");
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
}
public void stop()
{
try {
mediaRecorder.stop();
}catch (Exception e)
{
e.printStackTrace();
}
resetRecorder();
}
private void resetRecorder()
{
//RESET RECORDER AFTER RECORDING
mediaRecorder.reset();
mediaRecorder.release();
camera.release();
}
}
Alles anzeigen
Diese Klasse wird dann von einem Service der im Hintergrund läuft aufgerufen start(),stop() .Ich weiß allerdings nicht wie man in so einer Klasse einen SurfaceView bzw Surfaceholder kriegen kann?Vielen Dank schonmal