def __init__(self, parent=QObject()): super(Camera, self).__init__(parent) # chooses the system default camera self.cam = QCamera() self.caminfo = QCameraInfo(self.cam) self.camvfind = QCameraViewfinder() self.camvfindset = QCameraViewfinderSettings() self.recorder = QMediaRecorder(self.cam)
def iniCamera(self): cameras = QCameraInfo.availableCameras() for cameraInfo in cameras: # select the capturing device if it is available if (cameraInfo.description().find("Capture") is not -1): self.cam = QCamera(cameraInfo) self.caminfo = QCameraInfo(self.cam) self.recorder = QMediaRecorder(self.cam) print("Camera Chosen: " + self.caminfo.description()) print(self.cam.supportedViewfinderFrameRateRanges()) if self.cam.isCaptureModeSupported(QCamera.CaptureVideo): print("Capturemode supported")
def setCamera(self, cameraDevice): try: if cameraDevice.isEmpty(): self.camera = QCamera() else: self.camera = QCamera(cameraDevice) self.camera.stateChanged.connect(self.updateCameraState) self.camera.error.connect(self.displayCameraError) self.mediaRecorder = QMediaRecorder(self.camera) self.mediaRecorder.stateChanged.connect(self.updateRecorderState) self.imageCapture = QCameraImageCapture(self.camera) self.mediaRecorder.durationChanged.connect(self.updateRecordTime) self.mediaRecorder.error.connect(self.displayRecorderError) self.mediaRecorder.setMetaData(QMediaMetaData.Title, "Camera Widget") self.ui.exposureCompensation.valueChanged.connect( self.setExposureCompensation) self.camera.setViewfinder(self.ui.viewfinder) self.updateCameraState(self.camera.state()) self.updateLockStatus(self.camera.lockStatus(), QCamera.UserRequest) self.updateRecorderState(self.mediaRecorder.state()) self.imageCapture.readyForCaptureChanged.connect( self.readyForCapture) self.imageCapture.imageCaptured.connect(self.processCapturedImage) self.imageCapture.imageSaved.connect(self.imageSaved) self.camera.lockStatusChanged.connect(self.updateLockStatus) self.ui.captureWidget.setTabEnabled( 0, self.camera.isCaptureModeSupported(QCamera.CaptureStillImage)) self.ui.captureWidget.setTabEnabled( 1, self.camera.isCaptureModeSupported(QCamera.CaptureVideo)) self.updateCaptureMode() self.camera.start() except: pass
def __init__(self, camera, parent=None): super(CameraView, self).__init__(parent) self.app = QApplication.instance() self.camera = camera self.ui = ui_camera.Ui_CameraView() self.ui.setupUi(self) self.setWindowTitle(iWebcamIpfsCapture()) self.camera.setCaptureMode(QCamera.CaptureStillImage) self.camera.stateChanged.connect(self.onCameraStateChange) self.camera.error.connect(self.onCameraError) # Image capture self.imageCapture = QCameraImageCapture(self.camera) self.imageCapture.setCaptureDestination( QCameraImageCapture.CaptureToBuffer) self.imageCapture.imageCaptured.connect( lambda reqid, img: ensure(self.handleImage(reqid, img))) self.imageCapture.readyForCaptureChanged.connect(self.readyForCapture) # Recorder self.mediaRecorder = QMediaRecorder(self.camera) self.mediaRecorder.durationChanged.connect(self.recDurationChanged) self.mediaRecorder.stateChanged.connect(self.updateRecorderState) self.mediaRecorder.actualLocationChanged.connect( self.recLocationChanged) self.mediaRecorder.error.connect(self.onRecorderError) self.ui.captureWidget.currentChanged.connect(self.updateCaptureMode) self.ui.captureImageButton.clicked.connect(self.captureImage) self.ui.closeButton.clicked.connect(self.onClose) self.ui.recordButton.clicked.connect(self.record) self.ui.pauseButton.clicked.connect(self.pause) self.ui.stopButton.clicked.connect(lambda: ensure(self.stop())) self.ui.muteButton.toggled.connect(self.setMuted) self.ui.pauseButton.hide() self.isCapturingImage = False self.videoLocation = None self.showMaximized()
def init_camera(self): cameras = QCameraInfo.availableCameras() for cameraInfo in cameras: # select the capturing device if it is available if cameraInfo.description().find("Capture") is not -1: self.cam = QCamera(cameraInfo) self.caminfo = QCameraInfo(self.cam) self.recorder = QMediaRecorder(self.cam) print("Camera Chosen: " + self.caminfo.description()) print(self.cam.supportedViewfinderFrameRateRanges()) self.cam.setCaptureMode(QCamera.CaptureStillImage) if self.cam.isCaptureModeSupported(QCamera.CaptureStillImage): print("Capturemode supported") self.cam.load() self.cam.setViewfinder(self.camvfind) self.cam.start() self.imageCapture = QCameraImageCapture(self.cam) self.imageCapture.setCaptureDestination( QCameraImageCapture.CaptureToBuffer)