public void startPreview() { if (null == cameraDevice || !activity.textureView.IsAvailable || null == previewSize) { return; } try { SetUpRecoder(); SurfaceTexture texture = activity.textureView.SurfaceTexture; texture.SetDefaultBufferSize(previewSize.Width, previewSize.Height); previewBuilder = cameraDevice.CreateCaptureRequest(CameraTemplate.Record); var surfaces = new List <Surface>(); var previewSurface = new Surface(texture); surfaces.Add(previewSurface); previewBuilder.AddTarget(previewSurface); var recorderSurface = mediaRecorder.Surface; surfaces.Add(recorderSurface); previewBuilder.AddTarget(recorderSurface); cameraDevice.CreateCaptureSession(surfaces, new PreviewCaptureStateCallback(activity, this), backgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } catch (Java.IO.IOException e) { e.PrintStackTrace(); } }
// Creates a new {@link CameraCaptureSession} for camera preview. public void CreateCameraPreviewSession() { try { SurfaceTexture texture = mTextureView.SurfaceTexture; if (texture == null) { throw new IllegalStateException("texture is null"); } // We configure the size of default buffer to be the size of camera preview we want. texture.SetDefaultBufferSize(mPreviewSize.Width, mPreviewSize.Height); // This is the output Surface we need to start preview. Surface surface = new Surface(texture); // We set up a CaptureRequest.Builder with the output Surface. mPreviewRequestBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Preview); mPreviewRequestBuilder.AddTarget(surface); mPreviewRequestBuilder.AddTarget(mImageReader.Surface); // Here, we create a CameraCaptureSession for camera preview. List <Surface> surfaces = new List <Surface>(); surfaces.Add(surface); surfaces.Add(mImageReader.Surface); mCameraDevice.CreateCaptureSession(surfaces, new CameraCaptureSessionCallback(this), null); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
public override void OnOpened(CameraDevice camera) { CaptureRequest.Builder builder = camera.CreateCaptureRequest(CameraTemplate.Preview); builder.AddTarget(_surface); builder.AddTarget(_reader.Surface); CaptureRequest captureRequest = builder.Build(); camera.CreateCaptureSession(new List <Surface> { _surface, _reader.Surface }, new MySessionCallback(captureRequest, _cameraPreviewView, _reader), new Handler(msg => { })); }
private void startRecordingVideo() { if (null == Activity) { return; } media_recorder = new MediaRecorder(); File file = getVideoFile(Activity); try { //UI button_video.SetText(Resource.String.stop); is_recording_video = true; //Configure the MediaRecorder media_recorder.SetAudioSource(AudioSource.Mic); media_recorder.SetVideoSource(VideoSource.Surface); media_recorder.SetOutputFormat(OutputFormat.Mpeg4); media_recorder.SetOutputFile(System.IO.Path.GetFullPath(file.ToString())); media_recorder.SetVideoEncodingBitRate(10000000); media_recorder.SetVideoFrameRate(30); media_recorder.SetVideoSize(1440, 1080); media_recorder.SetVideoEncoder(VideoEncoder.H264); media_recorder.SetAudioEncoder(AudioEncoder.Aac); int rotation = (int)Activity.WindowManager.DefaultDisplay.Rotation; int orientation = ORIENTATIONS.Get(rotation); media_recorder.SetOrientationHint(orientation); media_recorder.Prepare(); Surface surface = media_recorder.Surface; //Set up CaptureRequest builder = camera_device.CreateCaptureRequest(CameraTemplate.Record); builder.AddTarget(surface); var preview_surface = new Surface(texture_view.SurfaceTexture); builder.AddTarget(preview_surface); var surface_list = new List <Surface>(); surface_list.Add(surface); surface_list.Add(preview_surface); camera_device.CreateCaptureSession(surface_list, new RecordingCaptureStateListener(this), null); } catch (IOException e) { e.PrintStackTrace(); } catch (CameraAccessException e) { e.PrintStackTrace(); } catch (IllegalStateException e) { e.PrintStackTrace(); } }
//Start the camera preview public void startPreview() { if (null == cameraDevice || !textureView.IsAvailable || null == previewSize) { return; } try { closePreviewSession(); SurfaceTexture texture = textureView.SurfaceTexture; //Assert.IsNotNull(texture); texture.SetDefaultBufferSize(previewSize.Width, previewSize.Height); previewBuilder = cameraDevice.CreateCaptureRequest(CameraTemplate.Record); surfaces = new List <Surface>(); var previewSurface = new Surface(texture); surfaces.Add(previewSurface); previewBuilder.AddTarget(previewSurface); if (previewBuilder != null) { if (flashon) { previewBuilder.Set(CaptureRequest.FlashMode, (int)FlashMode.Torch); } Rect sensor_rect = max; int left = sensor_rect.Width() / 2; int right = left; int top = sensor_rect.Height() / 2; int bottom = top; int hwidth = (int)(sensor_rect.Width() / (2.0 * zoomlev)); int hheight = (int)(sensor_rect.Height() / (2.0 * zoomlev)); left -= hwidth; right += hwidth; top -= hheight; bottom += hheight; previewBuilder.Set(CaptureRequest.ScalerCropRegion, new Rect(left, top, right, bottom)); } previewBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.Off); previewBuilder.Set(CaptureRequest.ControlAfTrigger, (int)ControlAFTrigger.Cancel); //var recorderSurface = mediaRecorder.Surface; //surfaces.Add(recorderSurface); //previewBuilder.AddTarget(recorderSurface); mPreviewSession = new PreviewCaptureStateCallback(this, false); cameraDevice.CreateCaptureSession(surfaces, mPreviewSession, backgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } catch (IOException e) { e.PrintStackTrace(); } }
public void StartPreview() { if (liveTextureView.SurfaceTexture == null) { return; } var texture = liveTextureView.SurfaceTexture; texture.SetDefaultBufferSize(previewSize.Width, previewSize.Height); var surface = new Surface(texture); previewBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.Preview); previewBuilder.AddTarget(surface); CameraDevice.CreateCaptureSession(new List <Surface> { surface }, new CameraCaptureStateListener { OnConfigureFailedAction = (CameraCaptureSession session) => { }, OnConfiguredAction = (CameraCaptureSession session) => { previewSession = session; previewBuilder.Set(CaptureRequest.ControlMode, new Java.Lang.Integer((int)ControlMode.Auto)); var thread = new HandlerThread("CameraPicture"); thread.Start(); var backgroundHandler = new Handler(thread.Looper); previewSession.SetRepeatingRequest(previewBuilder.Build(), null, backgroundHandler); } }, null); }
private void StartRecord() { SetupMediaRecorder(); Surface recordSurface = mediaRecorder.Surface; CaptureRequest.Builder builder = cameraDevice.CreateCaptureRequest(CameraTemplate.Record); builder.AddTarget(recordSurface); SetUpCaptureRequestBuilder(builder); List <Surface> surfaces = new List <Surface>(); surfaces.Add(recordSurface); cameraDevice.CreateCaptureSession(surfaces, new CameraCapturerRecordStateListener() { OnConfiguredAction = (CameraCaptureSession session) => { try { session.SetRepeatingRequest(builder.Build(), null, backgroundHandler); } catch (CameraAccessException ex) { Log.WriteLine(LogPriority.Info, "Capture Session error: ", ex.ToString()); } } }, backgroundHandler); mediaRecorder.Start(); videoButton.Text = "Stop record"; recordingVideo = true; }
// Capture a still picture. This method should be called when we get a response in // {@link #mCaptureCallback} from both {@link #lockFocus()}. public void CaptureStillPicture() { try { var activity = Activity; if (null == activity || null == CameraDevice) { return; } // This is the CaptureRequest.Builder that we use to take a picture. //if (_stillCaptureBuilder == null) //{ _stillCaptureBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); //} _stillCaptureBuilder.AddTarget(_imageReader.Surface); // Use the same AE and AF modes as the preview. _stillCaptureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); SetAutoFlash(_stillCaptureBuilder); CaptureSession.StopRepeating(); CaptureSession.Capture(_stillCaptureBuilder.Build(), new CameraCaptureStillPictureSessionCallback(this), null); } catch (CameraAccessException ex) { #if DEBUG ex.PrintStackTrace(); #endif } }
public void CapturePreviewShot() { try { //final Activity activity = getActivity(); if (null == mCameraDevice) { return; } // This is the CaptureRequest.Builder that we use to take a picture. //final CaptureRequest.Builder captureBuilder = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW); CaptureRequest.Builder captureBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Preview); captureBuilder.AddTarget(mImageReader.Surface); // Use the same AE and AF modes as the preview. captureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); //SetAutoFlash(captureBuilder); // Orientation int rotation = (int)WindowManager.DefaultDisplay.Rotation; captureBuilder.Set(CaptureRequest.JpegOrientation, GetOrientation(rotation)); mCaptureSession.StopRepeating(); //mCaptureSession.Capture(captureBuilder.Build(), new CameraCapturePreviewSessionCallback(this), null); mCaptureSession.Capture(captureBuilder.Build(), new CameraCapturePreviewSessionCallback(this), mBackgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
/// <summary> /// Capture a still picture. This method should be called when we get a response in /// CaptureCallback from both LockFocus() /// </summary> public void CaptureStillPicture() { try { var activity = Activity; if (null == activity || null == CameraDevice) { return; } // This is the CaptureRequest.Builder that we use to take a picture. CaptureRequest.Builder captureBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); captureBuilder.AddTarget(mImageReader.Surface); // Use the same AE and AF modes as the preview. captureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); SetAutoFlash(captureBuilder); // Orientation int rotation = (int)activity.WindowManager.DefaultDisplay.Rotation; captureBuilder.Set(CaptureRequest.JpegOrientation, GetOrientation(rotation)); var captureCallback = new CameraCaptureSessionCaptureCallback2(this); CaptureSession.StopRepeating(); CaptureSession.Capture(captureBuilder.Build(), captureCallback, null); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
// Capture a still picture. This method should be called when we get a response in // {@link #mCaptureCallback} from both {@link #lockFocus()}. public void CaptureStillPicture() { try { var activity = Activity; if (null == activity || null == mCameraDevice) { return; } // This is the CaptureRequest.Builder that we use to take a picture. if (stillCaptureBuilder == null) { stillCaptureBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); } stillCaptureBuilder.AddTarget(mImageReader.Surface); // Use the same AE and AF modes as the preview. stillCaptureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); SetAutoFlash(stillCaptureBuilder); stillCaptureBuilder.Set(CaptureRequest.JpegOrientation, 90);//TODO mCaptureSession.StopRepeating(); mCaptureSession.Capture(stillCaptureBuilder.Build(), new CaptureStillPictureSessionCallback(this), null); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
public void CaptureStillPicture() { try { if (Device == null) { return; } // This is the CaptureRequest.Builder that we use to take a picture. if (stillCaptureBuilder == null) { stillCaptureBuilder = Device.CreateCaptureRequest(CameraTemplate.StillCapture); } stillCaptureBuilder.AddTarget(mImageReader.Surface); // Use the same AE and AF modes as the preview. stillCaptureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); SetAutoFlash(stillCaptureBuilder); // Orientation var windowManager = Context.GetSystemService(Context.WindowService).JavaCast <IWindowManager>(); int rotation = (int)windowManager.DefaultDisplay.Rotation; stillCaptureBuilder.Set(CaptureRequest.JpegOrientation, GetOrientation(rotation)); CaptureSession.StopRepeating(); CaptureSession.Capture(stillCaptureBuilder.Build(), new CameraCaptureStillPictureSessionCallback(this), null); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
public void StartPreview() { if (CameraDevice == null || !_cameraTexture.IsAvailable || _previewSize == null) { return; } var texture = _cameraTexture.SurfaceTexture; texture.SetDefaultBufferSize(_previewSize.Width, _previewSize.Height); var surface = new Surface(texture); _previewBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.Preview); _previewBuilder.AddTarget(surface); List <Surface> surfaces = new List <Surface>(); surfaces.Add(surface); surfaces.Add(_imageReader.Surface); CameraDevice.CreateCaptureSession(surfaces, new CameraCaptureStateListener { OnConfigureFailedAction = session => { }, OnConfiguredAction = session => { _previewSession = session; UpdatePreview(); } }, _backgroundHandler); }
// Capture a still picture. This method should be called when we get a response in // {@link #mCaptureCallback} from both {@link #lockFocus()}. public void CaptureStillPicture() { try { if (null == mCameraDevice) { return; } // This is the CaptureRequest.Builder that we use to take a picture. stillCaptureBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); stillCaptureBuilder.AddTarget(mImageReader.Surface); // Use the same AE and AF modes as the preview. stillCaptureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); SetFlash(stillCaptureBuilder); // Orientation int rotation = (int)WindowManager.DefaultDisplay.Rotation; var orient = GetOrientation(rotation); stillCaptureBuilder.Set(CaptureRequest.JpegOrientation, orient); mCaptureSession.StopRepeating(); mCaptureSession.Capture(stillCaptureBuilder.Build(), new CameraCaptureStillPictureSessionCallback(this), null); } catch (CameraAccessException e) { e.PrintStackTrace(); } }
public async Task <ICameraPreview> OpenWithPreviewAsync(Xamarin.Forms.Size previewRequestSize) { await OpenAsync(true); var stateCallback = new StateCallback(); stateCallback.Configured += SessionConfigured; stateCallback.ConfigureFailed += SessionConfigureFailed; var previewSurface = _cameraPreview.CreateSurface(previewRequestSize); _previewRequestBuilder.AddTarget(previewSurface); _previewRequestBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); var characteristics = _manager.GetCameraCharacteristics(_cameraDevice.Id); var map = (StreamConfigurationMap)characteristics.Get(CameraCharacteristics.ScalerStreamConfigurationMap); // ReSharper disable once CoVariantArrayConversion _imageSize = (Size)Collections.Max( Arrays.AsList(map.GetOutputSizes((int)ImageFormatType.Jpeg)), new CompareSizesByArea()); _imageReader = ImageReader.NewInstance(_imageSize.Width, _imageSize.Height, ImageFormatType.Jpeg, /* maxImages */ 2); _imageAvailableListener = new ImageAvailableListener(); _imageAvailableListener.ImageAvailable += CaptureAvailable; _imageReader.SetOnImageAvailableListener(_imageAvailableListener, _backgroundThread.Handler); var surfaces = new List <Surface> { previewSurface, _imageReader.Surface }; _cameraDevice.CreateCaptureSession(surfaces, stateCallback, null); return(_cameraPreview); }
private void CaptureStillPicture() { try { // This is the CaptureRequest.Builder that we use to take a picture. if (_stillCaptureBuilder == null) { _stillCaptureBuilder = _cameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); } _stillCaptureBuilder.AddTarget(_imageReader.Surface); // Use the same AE and AF modes as the preview. _stillCaptureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); Utils.SetAutoFlash(_stillCaptureBuilder, _manager, _cameraId); var rotation = Utils.CalculateRotation(); _stillCaptureBuilder.Set(CaptureRequest.JpegOrientation, Utils.GetOrientation(rotation)); _captureSession.StopRepeating(); var stillCaptureListener = new CameraCaptureListener(); stillCaptureListener.CaptureResultAvailable += StillCaptureHandler; _captureSession.Capture(_stillCaptureBuilder.Build(), stillCaptureListener, null); } catch (CameraAccessException e) { Debug.WriteLine(e); throw; } }
public void TakePhoto() { if (_context == null || CameraDevice == null) { return; } if (_captureBuilder == null) { _captureBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); } _captureBuilder.AddTarget(_imageReader.Surface); _captureBuilder.Set(CaptureRequest.ControlAfMode, (int)ControlAFMode.ContinuousPicture); SetAutoFlash(_captureBuilder); _previewSession.StopRepeating(); _previewSession.Capture(_captureBuilder.Build(), new CameraCaptureStillPictureSessionCallback { OnCaptureCompletedAction = session => { UnlockFocus(); } }, null); }
public void TakePhoto() { var characteristics = cameraManager.GetCameraCharacteristics(CameraDevice.Id); var jpegSizes = ((StreamConfigurationMap)characteristics.Get(CameraCharacteristics.ScalerStreamConfigurationMap)).GetOutputSizes((int)ImageFormatType.Jpeg); var width = jpegSizes[0].Width; var height = jpegSizes[0].Height; var reader = ImageReader.NewInstance(width, height, ImageFormatType.Jpeg, 1); var outputSurfaces = new List <Surface> { reader.Surface }; CaptureRequest.Builder captureBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.StillCapture); captureBuilder.AddTarget(reader.Surface); captureBuilder.Set(CaptureRequest.ControlMode, (int)ControlMode.Auto); // Orientation var windowManager = Context.GetSystemService(Context.WindowService).JavaCast <IWindowManager>(); SurfaceOrientation rotation = windowManager.DefaultDisplay.Rotation; captureBuilder.Set(CaptureRequest.JpegOrientation, orientation); var readerListener = new ImageAvailableListener(); readerListener.Photo += (sender, e) => { (Element as Controls.CameraPage).SetPhotoResult(e, width, height); }; HandlerThread thread = new HandlerThread("CameraPicture"); thread.Start(); Handler backgroundHandler = new Handler(thread.Looper); reader.SetOnImageAvailableListener(readerListener, backgroundHandler); var captureListener = new CameraCaptureListener(); captureListener.PhotoComplete += (sender, e) => { StartPreview(); }; CameraDevice.CreateCaptureSession(outputSurfaces, new CameraCaptureStateListener() { OnConfiguredAction = (CameraCaptureSession session) => { try { previewSession = session; session.Capture(captureBuilder.Build(), captureListener, backgroundHandler); } catch (CameraAccessException ex) { Log.WriteLine(LogPriority.Info, "Capture Session error: ", ex.ToString()); } } }, backgroundHandler); }
/** Creates a new {@link CameraCaptureSession} for camera preview. */ private void createCameraPreviewSession() { try { SurfaceTexture texture = textureView.SurfaceTexture; // assert texture != null; // We configure the size of default buffer to be the size of camera preview we want. texture.SetDefaultBufferSize(previewSize.Width, previewSize.Height); // This is the output Surface we need to start preview. Surface surface = new Surface(texture); // We set up a CaptureRequest.Builder with the output Surface. previewRequestBuilder = cameraDevice.CreateCaptureRequest(CameraTemplate.Preview); previewRequestBuilder.AddTarget(surface); StateCallback call = new StateCallback(); call.OnConfiguredHandler += (sender, e) => { if (null == cameraDevice) { return; } // When the session is ready, we start displaying the preview. captureSession = e;// cameraCaptureSession; try { // Auto focus should be continuous for camera preview. previewRequestBuilder.Set( CaptureRequest.ControlAeMode, (int)ControlAFMode.ContinuousPicture); // ly, we start displaying the camera preview. previewRequest = previewRequestBuilder.Build(); CaptureCallback captureCallback = new CaptureCallback(); captureSession.SetRepeatingRequest(previewRequest, captureCallback, backgroundHandler); } catch (CameraAccessException ex) { Log.Error(TAG, "Failed to set up config to capture Camera", e); } }; // Here, we create a CameraCaptureSession for camera preview. cameraDevice.CreateCaptureSession(new System.Collections.Generic.List <Surface>() { surface }, call, null); } catch (CameraAccessException e) { Log.Error(TAG, "Failed to preview Camera", e); } }
public override void OnOpened(CameraDevice camera) { System.Diagnostics.Debug.WriteLine("Camera ouverte"); _builder = camera.CreateCaptureRequest(CameraTemplate.Preview); _builder.AddTarget(_sv); _ccssc = new CameraCaptureSessionCallbackU(_builder); camera.CreateCaptureSession(ls, _ccssc, new Handler()); }
private void CreateCaptureSession() { //SurfaceTexture texture = _textureView.SurfaceTexture; //エラーになる //バッファのサイズをプレビューサイズに設定(画面サイズ等適当な値を入れる) _surfaceTexture.SetDefaultBufferSize(_previewSize.Width, _previewSize.Height); Surface surface = new Surface(_surfaceTexture); List <Surface> list = new List <Surface>(); list.Add(surface); list.Add(_recorder.Surface); CaptureRequest.Builder captureRequest = _cameraDevice.CreateCaptureRequest(CameraTemplate.Record); captureRequest.AddTarget(surface); captureRequest.AddTarget(_recorder.Surface); _captureRequest = captureRequest.Build(); _cameraDevice.CreateCaptureSession(list, new CameraCaputureSessionCallBack(_captureRequest), null); }
private void StartRecordingVideo() { try { closePreviewSession(); SetUpMediaRecorder(); SurfaceTexture texture = textureView.SurfaceTexture; //Assert.IsNotNull(texture); //texture.SetDefaultBufferSize(previewSize.Width, previewSize.Height); previewBuilder = cameraDevice.CreateCaptureRequest(CameraTemplate.Record); var surfaces = new List <Surface>(); var previewSurface = new Surface(texture); surfaces.Add(previewSurface); previewBuilder.AddTarget(previewSurface); if (flashon) { previewBuilder.Set(CaptureRequest.FlashMode, (int)FlashMode.Torch); } Rect sensor_rect = max; int left = sensor_rect.Width() / 2; int right = left; int top = sensor_rect.Height() / 2; int bottom = top; int hwidth = (int)(sensor_rect.Width() / (2.0 * zoomlev)); int hheight = (int)(sensor_rect.Height() / (2.0 * zoomlev)); left -= hwidth; right += hwidth; top -= hheight; bottom += hheight; previewBuilder.Set(CaptureRequest.ScalerCropRegion, new Rect(left, top, right, bottom)); var recorderSurface = mediaRecorder.Surface; surfaces.Add(recorderSurface); previewBuilder.AddTarget(recorderSurface); mPreviewSession = new PreviewCaptureStateCallback(this, true); cameraDevice.CreateCaptureSession(surfaces, mPreviewSession, backgroundHandler); } catch (IllegalStateException e) { e.PrintStackTrace(); } }
/// <summary> /// Stops the live preview, and requests a still capture from the camera session. /// When the still capture is handled, the live preview is started again. /// </summary> public void CaptureImage() { if (CancellationToken.IsCancellationRequested) { return; } CaptureRequest.Builder builder = Camera.CreateCaptureRequest(CameraTemplate.StillCapture); builder.AddTarget(Reader.Surface); Session.Capture(builder.Build(), CaptureListener, null); }
#pragma warning restore CS0618 // Type or member is obsolete #endregion public void StartPreview() { if (mCameraDevice == null || !textureView.IsAvailable || mPreviewSize == null) { return; } try { SurfaceTexture texture = textureView.SurfaceTexture; System.Diagnostics.Debug.Assert(texture != null); // We configure the size of the default buffer to be the size of the camera preview we want texture.SetDefaultBufferSize(mPreviewSize.Width, mPreviewSize.Height); // This is the output Surface we need to start the preview previewSurface = new Surface(texture); // We set up a CaptureRequest.Builder with the output Surface mPreviewBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Preview); mPreviewBuilder.AddTarget(previewSurface); // Here, we create a CameraCaptureSession for camera preview. mCameraDevice.CreateCaptureSession(new List <Surface>() { previewSurface }, new CameraCaptureStateListener() { OnConfigureFailedAction = (CameraCaptureSession session) => { Activity activity = Activity; if (activity != null) { Toast.MakeText(activity, "Failed", ToastLength.Short).Show(); } }, OnConfiguredAction = (CameraCaptureSession session) => { mPreviewSession = session; UpdatePreview(); } }, null); takePhotoButton.Enabled = true; } catch (CameraAccessException ex) { Log.WriteLine(LogPriority.Info, "Camera2BasicFragment", ex.StackTrace); } }
// Creates a new {@link CameraCaptureSession} for camera preview. public void CreateCameraPreviewSession(bool builderexists = false) { try { var texture = mTextureView.SurfaceTexture; if (texture == null) { throw new IllegalStateException("texture is null"); } // We configure the size of default buffer to be the size of camera preview we want. texture.SetDefaultBufferSize(mPreviewSize.Width, mPreviewSize.Height); // This is the output Surface we need to start preview. var surface = new Surface(texture); // We set up a CaptureRequest.Builder with the output Surface. if (!builderexists) { mPreviewRequestBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Preview); } //mPreviewRequestBuilder.Set(CaptureRequest.ControlAeTargetFpsRange, new Android.Util.Range(30, 120)); mPreviewRequestBuilder.Set(CaptureRequest.ControlAeMode, (int)ControlAEMode.On); mPreviewRequestBuilder.Set(CaptureRequest.ControlAwbMode, (int)ControlAwbMode.Auto); mPreviewRequestBuilder.Set(CaptureRequest.ControlAePrecaptureTrigger, (int)ControlAEPrecaptureTrigger.Start); mPreviewRequestBuilder.Set(CaptureRequest.LensOpticalStabilizationMode, (int)LensOpticalStabilizationMode.On); mPreviewRequestBuilder.Set(CaptureRequest.EdgeMode, (int)EdgeMode.Fast); mPreviewRequestBuilder.Set(CaptureRequest.ShadingMode, (int)ShadingMode.HighQuality); mPreviewRequestBuilder.Set(CaptureRequest.TonemapMode, (int)TonemapMode.HighQuality); mPreviewRequestBuilder.AddTarget(surface); // Here, we create a CameraCaptureSession for camera preview. var surfaces = new List <Surface>(); surfaces.Add(surface); surfaces.Add(mImageReader.Surface); mCameraCaptureSessionCallback = new CameraCaptureSessionCallback(this); mCameraDevice.CreateCaptureSession(surfaces, mCameraCaptureSessionCallback, null); } catch (CameraAccessException e) { Crashes.TrackError(e); e.PrintStackTrace(); } }
private CaptureRequest CreateCaptureRequest() { try { CaptureRequest.Builder builder = _cameraDevice.CreateCaptureRequest(CameraTemplate.Preview); builder.AddTarget(_surface); return(builder.Build()); } catch (CameraAccessException e) { Log.Error(_tag, e.Message); return(null); } }
private CaptureRequest CreateCaptureRequest() { try { CaptureRequest.Builder builder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Preview); builder.AddTarget(mYuvImageReader.Get().Surface); return(builder.Build()); } catch (CameraAccessException e) { Log.Error(TAG, e.Message); return(null); } }
void OnOpened(object sender, CameraDeviceEventArgs e) { cameraOpenCloseLock.Release(); cameraDevice = e.Camera; try { //SurfaceTexture texture = mTextureView.SurfaceTexture; //SurfaceTexture texture = new SurfaceTexture(); //if (texture == null) //{ // throw new IllegalStateException("texture is null"); //} //// We configure the size of default buffer to be the size of camera preview we want. //texture.SetDefaultBufferSize(mPreviewSize.Width, mPreviewSize.Height); //texture.SetDefaultBufferSize(previewSize.Width, previewSize.Height); //texture.FrameAvailable += (sender2, e2) => //{ // e2.SurfaceTexture. //}; ////// This is the output Surface we need to start preview. //Surface surface = new Surface(texture); // We set up a CaptureRequest.Builder with the output Surface. previewRequestBuilder = cameraDevice.CreateCaptureRequest(CameraTemplate.Preview); previewRequestBuilder.AddTarget(imageReader.Surface); // // Here, we create a CameraCaptureSession for camera preview. var surfaces = new List <Surface>(); surfaces.Add(imageReader.Surface); if (captureSessionListener != null) { captureSessionListener.Configured -= OnConfigured; captureSessionListener.ConfigureFailed -= OnConfigureFailed; } captureSessionListener = new CameraCaptureSessionCallbackListener(cameraDevice); captureSessionListener.Configured += OnConfigured; captureSessionListener.ConfigureFailed += OnConfigureFailed; cameraDevice.CreateCaptureSession(surfaces, captureSessionListener, null); } catch (CameraAccessException ex) { ex.PrintStackTrace(); } }
/// <summary> /// Starts preview before recording video. /// </summary> public void StartPreviewForVideo() { if (null == mCameraDevice || !mTextureView.IsAvailable || null == mPreviewSize) { return; } try { //wake up the cpu PowerManager powerManager = (PowerManager)_context.GetSystemService(Context.PowerService); wakeLock = powerManager.NewWakeLock(WakeLockFlags.Partial, "MyApp::MyWakelockTag"); wakeLock.Acquire(); SetUpMediaRecorder(); SurfaceTexture texture = mTextureView.SurfaceTexture; //Assert.IsNotNull(texture); // texture.SetDefaultBufferSize(CamcorderProfile.Get(CamcorderQuality.High., CamcorderProfile.Get(Height)); mPreviewRequestBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Record); var surfaces = new List <Surface>(); var previewSurface = new Surface(texture); surfaces.Add(previewSurface); mPreviewRequestBuilder.AddTarget(previewSurface); var recorderSurface = mediaRecorder.Surface; surfaces.Add(recorderSurface); mPreviewRequestBuilder.AddTarget(recorderSurface); mCameraDevice.CreateCaptureSession(surfaces, new PreviewCaptureStateCallback(this), mBackgroundHandler); } catch (CameraAccessException e) { e.PrintStackTrace(); } catch (IOException e) { e.PrintStackTrace(); } }
public void createpreview() { //Toast.MakeText(Application.Context, "Iam there", ToastLength.Long).Show(); SurfaceTexture texture = tview.SurfaceTexture; texture.SetDefaultBufferSize(imagedimension.Width, imagedimension.Height); Surface surface = new Surface(texture); Builder = cameradevice.CreateCaptureRequest(CameraTemplate.Preview); Builder.AddTarget(surface); outputs.Add(surface); cameradevice.CreateCaptureSession(outputs, capturecallback, null); //throw new NotImplementedException(); }
//Start the camera preview public void startPreview() { if (null == cameraDevice || !textureView.IsAvailable || null == previewSize) return; try { SetUpMediaRecorder(); SurfaceTexture texture = textureView.SurfaceTexture; //Assert.IsNotNull(texture); texture.SetDefaultBufferSize(previewSize.Width,previewSize.Height); previewBuilder = cameraDevice.CreateCaptureRequest(CameraTemplate.Record); var surfaces = new List<Surface>(); var previewSurface = new Surface(texture); surfaces.Add(previewSurface); previewBuilder.AddTarget(previewSurface); var recorderSurface = mediaRecorder.Surface; surfaces.Add(recorderSurface); previewBuilder.AddTarget(recorderSurface); cameraDevice.CreateCaptureSession(surfaces, new PreviewCaptureStateCallback(this),backgroundHandler); } catch(CameraAccessException e) { e.PrintStackTrace (); } catch(IOException e) { e.PrintStackTrace (); } }
private void StartPreview() { if (mCameraDevice == null || !mTextureView.IsAvailable || mPreviewSize == null) { return; } try { SurfaceTexture texture = mTextureView.SurfaceTexture; System.Diagnostics.Debug.Assert( texture != null); texture.SetDefaultBufferSize(mPreviewSize.Width, mPreviewSize.Height); Surface surface = new Surface(texture); mPreviewBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Preview); mPreviewBuilder.AddTarget(surface); mCameraDevice.CreateCaptureSession( new List<Surface>() {surface}, new CameraCaptureStateListener() { OnConfigureFailedAction = (CameraCaptureSession session) => { Activity activity = Activity; if(activity != null) { Toast.MakeText(activity, "Failed", ToastLength.Short).Show(); } }, OnConfiguredAction = (CameraCaptureSession session) => { mPreviewSession = session; UpdatePreview (); } }, null); } catch(CameraAccessException ex) { Log.WriteLine (LogPriority.Info, "CameraFragment", ex.StackTrace); } }
private void startRecordingVideo() { if (null == Activity) return; media_recorder = new MediaRecorder (); File file = getVideoFile (Activity); try { //UI button_video.SetText (Resource.String.stop); is_recording_video = true; //Configure the MediaRecorder media_recorder.SetAudioSource (AudioSource.Mic); media_recorder.SetVideoSource (VideoSource.Surface); media_recorder.SetOutputFormat (OutputFormat.Mpeg4); media_recorder.SetOutputFile (System.IO.Path.GetFullPath (file.ToString())); media_recorder.SetVideoEncodingBitRate (10000000); media_recorder.SetVideoFrameRate (30); media_recorder.SetVideoSize (1440, 1080); media_recorder.SetVideoEncoder (VideoEncoder.H264); media_recorder.SetAudioEncoder (AudioEncoder.Aac); int rotation = (int)Activity.WindowManager.DefaultDisplay.Rotation; int orientation = ORIENTATIONS.Get (rotation); media_recorder.SetOrientationHint (orientation); media_recorder.Prepare (); Surface surface = media_recorder.Surface; //Set up CaptureRequest builder = camera_device.CreateCaptureRequest (CameraTemplate.Record); builder.AddTarget (surface); var preview_surface = new Surface (texture_view.SurfaceTexture); builder.AddTarget (preview_surface); var surface_list = new List<Surface>(); surface_list.Add(surface); surface_list.Add(preview_surface); camera_device.CreateCaptureSession(surface_list,new RecordingCaptureStateListener(this),null); } catch (IOException e) { e.PrintStackTrace (); } catch (CameraAccessException e) { e.PrintStackTrace (); } catch (IllegalStateException e) { e.PrintStackTrace (); } }
//Start the camera preview public void startPreview() { if (null == camera_device || !texture_view.IsAvailable || null == preview_size) return; try { SurfaceTexture texture = texture_view.SurfaceTexture; //Assert.IsNotNull(texture); texture.SetDefaultBufferSize(preview_size.Width,preview_size.Height); preview_builder = camera_device.CreateCaptureRequest(CameraTemplate.Preview); Surface surface = new Surface(texture); var surfaces = new List<Surface>(); surfaces.Add(surface); preview_builder.AddTarget(surface); camera_device.CreateCaptureSession(surfaces, new PreviewCaptureStateListener(this),null); } catch(CameraAccessException e) { e.PrintStackTrace (); } }
/// <summary> /// Starts the camera previe /// </summary> private void StartPreview() { if (mCameraDevice == null || !mTextureView.IsAvailable || mPreviewSize == null) { return; } try { SurfaceTexture texture = mTextureView.SurfaceTexture; System.Diagnostics.Debug.Assert( texture != null ); // We configure the size of the default buffer to be the size of the camera preview we want texture.SetDefaultBufferSize(mPreviewSize.Width, mPreviewSize.Height); // This is the output Surface we need to start the preview Surface surface = new Surface(texture); // We set up a CaptureRequest.Builder with the output Surface mPreviewBuilder = mCameraDevice.CreateCaptureRequest(CameraTemplate.Preview); mPreviewBuilder.AddTarget(surface); // Here, we create a CameraCaptureSession for camera preview. mCameraDevice.CreateCaptureSession(new List<Surface>() { surface }, new CameraCaptureStateListener() { OnConfigureFailedAction = (CameraCaptureSession session) => { Activity activity = Activity; if (activity != null) { Toast.MakeText(activity, "Failed", ToastLength.Short).Show(); } }, OnConfiguredAction = (CameraCaptureSession session) => { mPreviewSession = session; UpdatePreview (); } }, null); } catch (Exception ex) { Log.WriteLine (LogPriority.Info, "Camera2BasicFragment", ex.StackTrace); } }
internal void CreateCameraPreviewSession() { try { // We configure the size of default buffer to be the size of camera preview we want. _surface.SetDefaultBufferSize(_previewSize.Width, _previewSize.Height); // This is the output Surface we need to start preview. var surface = new Surface(_surface); // We set up a CaptureRequest.Builder with the output Surface. _previewRequestBuilder = CameraDevice.CreateCaptureRequest(CameraTemplate.Preview); _previewRequestBuilder.AddTarget(surface); // Here, we create a CameraCaptureSession for camera preview. CameraDevice.CreateCaptureSession(new List<Surface> { surface, _imageReader.Surface }, _captureStateCallback, null); } catch { } }