[Android Software Development] imso:
Can someone tell me how can i use something like a timer to start a video recording interval process for a period of time (eg: 5mins) then restarts to record another set of 5min video until the user intervene to stop the process..

public class ServiceRecording extends Service {

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}

private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
public static Camera ServiceCamera;
public static boolean recordingStatus;

@Override
public void onCreate() {
super.onCreate();

recordingStatus = false;
ServiceCamera = CameraTest.MainCamera;
surfaceView = CameraTest.surfaceView;
surfaceHolder = CameraTest.surfaceHolder;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
if (recordingStatus == false)
startRecording();

return START_STICKY;
}

@Override
public void onDestroy() {
super.onDestroy();

stopRecording();
//camera.stopPreview();
recordingStatus = false;
//camera.release();
}

private MediaRecorder mediaRecorder;

private static int encodingStatus;
private static String videoResolution;
private static String fileFormat;

private static boolean audioStatus;
private static int timeInterval;

private static final String TAG = "Exception";

public boolean startRecording(){
try {
encodingStatus = Tab1Activity.encodingPref;
videoResolution = Tab1Activity.videoResPref;
fileFormat = Tab1Activity.fileFormatPref;

audioStatus = Tab2Activity.audioPref;
timeInterval = Tab2Activity.timeIntervalPref;

Toast.makeText(getBaseContext(), "Recording Started", Toast.LENGTH_SHORT).show();
try{
ServiceCamera.reconnect();
ServiceCamera.unlock();
}
catch(Exception e){

}

mediaRecorder = new MediaRecorder();

mediaRecorder.setCamera(ServiceCamera);

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//

mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);

mediaRecorder.setMaxDuration(timeInterval);

mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);

mediaRecorder.setVideoEncoder(encodingStatus);

//mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH_mm_ss");
Date date = new Date();
File dirlist = new File(Environment.getExternalStorageDirectory() + "/VideoList");

if(!(dirlist.exists()))
dirlist.mkdir();

File TempFile = new File(Environment.getExternalStorageDirectory() + "/VideoList", dateFormat.format(date) + fileFormat);
mediaRecorder.setOutputFile(TempFile.getPath());

String[] separatedRes = videoResolution.split("x");
separatedRes[0];
separatedRes[1];

mediaRecorder.setVideoSize(surfaceView.getWidth(),surfaceView.getHeight());

//mediaRecorder.setVideoFrameRate(videoFramesPerSecond);

mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());

mediaRecorder.prepare();
mediaRecorder.start();

recordingStatus = true;

return true;
}

catch (IllegalStateException e) {
Log.d(TAG,e.getMessage());
e.printStackTrace();
return false;
}
catch (IOException e) {
Log.d(TAG,e.getMessage());
e.printStackTrace();
return false;
}
}

public void stopRecording() {
Toast.makeText(getBaseContext(), "Recording Stopped", Toast.LENGTH_SHORT).show();
mediaRecorder.reset();
mediaRecorder.release();

recordingStatus = false;
}
}