Guest User

Untitled

a guest
Jan 23rd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. public void StartRecordingVideo() {
  2. Initialize();
  3. recordingVideo = true;
  4. cameraManager = (CameraManager) this.getSystemService(Context.CAMERA_SERVICE);
  5.  
  6.  
  7.  
  8. try {
  9. if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
  10. String[] cameraIDs = cameraManager.getCameraIdList();
  11. //LogAllCameraInfo();
  12. if (cameraIDs != null)
  13. {
  14. for(int x = 0; x < cameraIDs.length; x++)
  15. {
  16. Log.d(LOG_ID, "ID: " + cameraIDs[x]);
  17. }
  18. }
  19.  
  20. cameraManager.openCamera(deviceCameraID, cameraStateCallback, handler);
  21.  
  22. Log.d(LOG_ID, "Successfully opened camera");
  23. }
  24. else
  25. {
  26. throw new IllegalAccessException();
  27. }
  28.  
  29. }
  30. catch (Exception e)
  31. {
  32. recordingVideo = false;
  33. Log.e(LOG_ID, "Error during record video start: " + e.getMessage());
  34. }
  35. }
  36. private void Initialize()
  37. {
  38. videoRecordThread = new HandlerThread("video_capture");
  39. videoRecordThread.start();
  40. handler = new Handler((videoRecordThread.getLooper()));
  41.  
  42. try
  43. {
  44. vidRecorder = new MediaRecorder();
  45. vidRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
  46. vidRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
  47. vidRecorder.setVideoFrameRate(30);
  48. vidRecorder.setCaptureRate(30);
  49.  
  50. vidRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
  51. vidRecorder.setVideoEncodingBitRate(10000000);
  52.  
  53. vidRecorder.setVideoSize(1920, 1080);
  54. String videoFilename = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+ File.separator + System.currentTimeMillis() + ".mp4";
  55. vidRecorder.setOutputFile(videoFilename);
  56.  
  57. Log.d(LOG_ID, "Starting video: " + videoFilename);
  58. vidRecorder.prepare();
  59. }
  60. catch (Exception e)
  61. {
  62. Log.e(LOG_ID, "Error during Initialize: " + e.getMessage());
  63.  
  64. }
  65. }
  66.  
  67. @Override
  68. public void onReady(CameraCaptureSession session) {
  69. Log.d(LOG_ID, "onReady: ");
  70. super.onReady(session);
  71. try {
  72. CaptureRequest.Builder builder = deviceCamera.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
  73.  
  74. builder.addTarget(vidRecorder.getSurface());
  75. CaptureRequest request = builder.build();
  76. session.setRepeatingRequest(request, null, handler);
  77. vidRecorder.start();
  78. } catch (CameraAccessException e) {
  79. Log.d(LOG_ID, "Error on Ready: " + e.getMessage());
  80.  
  81. }
  82. }
  83.  
  84.  
  85.  
  86.  
  87. @Override
  88. public void onSurfacePrepared(CameraCaptureSession session, Surface surface) {
  89. Log.d(LOG_ID, "onSurfacePrepared: ");
  90.  
  91. super.onSurfacePrepared(session, surface);
  92. }
  93.  
  94.  
  95.  
  96.  
  97. @Override
  98. public void onOpened(CameraDevice camera) {
  99. Log.d(LOG_ID, "onOpened: ");
  100. deviceCamera = camera;
  101.  
  102. try {
  103. camera.createCaptureSession(Arrays.asList(vidRecorder.getSurface()), recordSessionStateCallback, handler);
  104. } catch (CameraAccessException e) {
  105. Log.d(LOG_ID, "onOpened: " + e.getMessage());
  106. }
  107. }
Add Comment
Please, Sign In to add comment