You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VideoRecorder.java 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.example.greenwatch.alarmrecorder.runnables;
  2. import android.media.MediaRecorder;
  3. import android.view.SurfaceHolder;
  4. import com.example.greenwatch.viewmodels.ViewModelInterface;
  5. import java.io.IOException;
  6. public class VideoRecorder implements Runnable{
  7. private MediaRecorder videoRecorder;
  8. private String videoPath;
  9. private SurfaceHolder previewHolder;
  10. public VideoRecorder() {
  11. videoRecorder = new MediaRecorder();
  12. }
  13. public void setPreviewHolder(SurfaceHolder previewHolder) {
  14. this.previewHolder = previewHolder;
  15. }
  16. public void setVideoPath(String audioPath) {
  17. this.videoPath = audioPath;
  18. }
  19. public void stopVideoRecording(){
  20. if (videoRecorder != null) {
  21. videoRecorder.stop();
  22. videoRecorder.reset();
  23. videoRecorder.release();
  24. videoRecorder = null;
  25. }
  26. }
  27. @Override
  28. public void run() {
  29. videoRecorder = new MediaRecorder();
  30. videoRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
  31. videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
  32. videoRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
  33. videoRecorder.setOutputFile(videoPath);
  34. videoRecorder.setOrientationHint(90);
  35. videoRecorder.setPreviewDisplay(previewHolder.getSurface());
  36. try {
  37. videoRecorder.prepare();
  38. videoRecorder.start();
  39. } catch (IOException e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. }