62-输入和显示-录制音频和视频及拍照- 音频接口QAudioInput 和视频接口QCamera

音频接口QAudioInput 和视频接口QCamera

要录制音频和视频,需要定义音频设备的接口 QAudioInput 和视频设备的接口QCamera后,才能调用音频设备和视频设备进行录制

QAudioInput 和 QCamera 相当于音频和视频输人通道。

  • QAudioInput 是机器上的音频输人,例如内置麦克风或头戴麦克风
  • QCamera 是机器上的摄像头或外接相机。

利用QAudiolnput 和 QCamera 创建音频设备和视频设备接口的方法如下所示。

from PySide6.QtMultimedia import QAudioInput,QCamera

QAudioInput(deviceInfo: PySide6.QtMultimedia.QAudioDevice,parent: Union[PySide6.QtCore.QObject,NoneType]= None)-> None
QAudioInput(parent: Union[PySide6.QtCore.QObject,NoneType]= None)-> None

QCamera(cameraDevice: PySide6.QtMultimedia.QCameraDevice,parent: Union[PySide6.QtCore.QObject,NoneType]= None)-> None
QCamera(parent: Union[PySide6.QtCore.QObject,NoneType]= None)-> None
QCamera(position: PySide6.QtMultimedia.QCameraDevice.Position,parent: Union[PySide6.QtCore.QObject,NoneType]= None)-> None
音频接口QAudioInput的常用方法

音频接口 QAudioInput 的常用方法如表所示,主要方法:

  • 用setDevice(device:QAudioDevice)方法设置音频设备;
  • 用setMuted(muted:bool)方法设置静音;
  • 用setVolume(volume:float)方法设置音量,音量参数 volume 的取值范围是0~1。
QAudioInput的方法及参数类型返回值的类型说明
setDevice(device:QAudioDevice)None设置音频设备
device()QAudioDevice获取音频设备
setMuted(muted:bool)None设置是否静音
isMuted()bool获取是否静音
setVolume(volume: float)None设置音量
volume()float获取音量
音频接口QAudioInput的信号
信号方法
deviceChanged()当设备发生改变时发送信号。
mutedChanged(muted:bool)静音状态发生改变时发送信号。
volumeChanged(volume: float)音量发生改变时发送信号。
视频接口 QCamera的常用方法

视频接口 QCamera 的常用方法如表所示,主要方法介绍如下

QCamera的方法及参数类型返回值的类型说 明
setCameraDevice(cameraDevice: QCameraDevice)None设置视频设备
cameraDevice()QCameraDevice获取视频设备
[slot]start()None开启相机
[slot]stop()None关闭相机
[slot]setActive(active: bool)None设置是否打开视频设备
isActive()bool获取相机是否启用
isAveilsble()bool获取相机是否可用
setCameraFormat(format: QCameraFormat)None设置视频格式
cameraFormat()QCameraFormat获取视频格式
captureSession()QMediaCaptureSession获取与 QCamera关联的媒体捕 获器
supportedFeatures()QCamera.Features获取支持的特征
[slot]setExposureMode(mode: QCamera.ExposureMode)None设置曝光模式
isExposureModeSupported(mode: QCamera.ExposureMode)bool获取是否支持某种曝光模式
[slot]setAutoExposureTime()None打开自动计算曝光时间
exposureTime()float获取曝光时间
[slot]setManualExposureTime(float)None设置曝光时间(秒)
manualExposureTime()float获取自定义曝光时间
[slot]setAutoIsoSensitivity()None根据曝光值开启自动选择光敏感值
isoSensitivity()int获取光敏感值
[slot]setManualIsoSensitivity(iso: int)None设置自定义光敏感值
manualIsoSensitivity()int获取自定义的光敏感值
[slot]setExposureCompensation(ev: float)None设置曝光补偿(EV值)
exposureCompensation()float获取曝光补偿
I slot]setFlashMode(QCamera.FlashMode)None设置快闪模式
flashMode()QCamera.FlashMode获取快闪模式
isFlashModeSupported(mode: QCamera.FlashMode)bool获取是否支持某种快闪模式
isFlashReady()bool获取是否可以用快闪
setFocusMode(QCamera.FocusMode)None设置对焦模式
focusMode()QCamera.FocusMode获取对焦模式
isFocusModeSupported(mode: QCamera.FocusMode)bo01获取是否支持某种焦点模式
setFocusDistance(d: float)None设置自定义焦距,0表示最近的点,1 表示无限远
focusDistance()float获取自定义焦距
setCustomFocusPoint(point: Union[QPointF,QPoint])None设置自定义焦点位置
customFocusPoint()QPointF获取自定义焦点
focusPoint()QPointF获取焦点
[slot]setTorchMode(QCamera.TorchMode)None设置辅助光源模式
torchMode()QCamera.TorchMode获取辅助光源模式
isTorchModeSupported(mode: QCamera.TorehMode)boul获取是否支持某种辅助光源模式
[slot]setWhiteBalanceMode(mode: QCamera.WhiteBalanceMode)None设置白平衡模式
isWhiteBalanceModeSupported(QCamera.WhiteBalanceMode)bool获取是否支持某种白平衡模式
whiteBalanceMode()QCamera.WhiteBalanceMole获取白平衡模式
[slot]setColorTemperature(int)None设置颜色温度(K温度)
colorTemperature()int获取颜色温度
setZoomFactor(factor:float)None设置缩放系数
zoomFactor()float获取缩放系数
[slot]zoomTo(zoom:float,rate: float)None根据速率设置缩放系数
maximumExposureTime()float获取最大的曝光时间
minimumExposureTime()float获取最小的曝光时间
maximumIsoSensitivity()int获取最大的光敏感值
minimumIsoSensitivity()int获取最小的光敏感值
maximumZoomFactor()float获取最大的放大系数
minimumZoomFactor()float获取最小的放大系数
errorString()str获取出错信息
error()QCamera.Error获取出错类型
  • 用setCameraDevice(cameraDevice:QCameraDevice)方法为视频接口设置视频设备;

  • 用start()方法或 setActive(true)方法开启视频设备;用stop()方法或setActive(false)方法停止视频设备。

  • 用supportedFeatures()方法获取相机支持的特征,返回值如表所示:

    相机的特征值说 明
    QCamera.Feature.ColorTemperature0x1相机支持色温
    QCamera.Feature.ExposureCompensation0x2相机支持曝光补偿
    QCamera.Feature.IsoSensitivity0x4相机支持自定义光般感值
    QCamera.Feature.ManualExposureTime0x8相机支持自定义曝光时间
    QCamera.Feature,CustomFocusPoint0x10相机支持自定义焦点
    QCamera.Feature.FocusDistance0x20相机支持自定义焦距
  • 用setExposureMode(mode;QCamera.ExposureMode)方法设置相机的曝光模式参数 mode 的取值是 QCamera.ExposureMode 的枚举值,可取的值如表所示;

    QCamera.ExposureMode的枚举值模式QCamera.ExposureMode的枚举值模式
    QCamera.ExposureAuto0自动QCamera.ExposureNightPortrait9夜晚
    QCamera.ExposureManual1手动QCamera.ExposureTheatre10剧院
    QCamera.ExposurePortrait2人物QCamera.ExposureSunset11傍晚
    QCamera.ExposureNight3夜晚QCamera.ExposureSteadyPhoto12固定
    QCamera.ExposureSports4运动QCamera.ExposureFireworks13火景
    QCamera.ExposureSnow5雪景QCamera.ExposureParty14宴会
    QCamera.ExposureBeach6海景QCamera.ExposureCandlelight15烛光
    QCamera.ExposureAction7动作QCamera.ExposureBarcode16条码
    QCamera.ExposureLandscape8风景
    • 用isExposureModeSupported(mode:QCamera,ExposureMode)方法获取是否支持某种曝光模式。
  • 用setFlashMode(mode:QCameraFlashMode)方法设置相机的快闪模式,参数mode的取值是QCamera,FlashMode 的枚举值,可取:

    • QCamera.FlashOff
    • QCamera.FlashOn
    • QCamera.FlashAuto;
    • 用isFlashModeSupported(mode:QCamera.FlashMode)方法获取是否支持某种快闪模式。
  • 用setFocusMode(mode;QCamera,FocusMode)方法设置对焦模式,参数 mode的取值是QCamera.FocusMode 的枚举值,可取的值如表所示。

    QCamera.FocusMode的枚举值说 明
    QCamera.FocusModeAuto0连续自动对焦模式
    QCamera.FocusModeAutoNear1对近处物体连续自动对焦模式
    QCamera.FocusModeAutoFar2对远处物体连续自动对焦模式
    QCamera.FocusModeHyperfocal3对超过焦距范围的物体采用最大景深值
    QCamera.FocusModeInfinity4对无限远对焦模式
    QCamera.FocusModeManual5手动或固定对焦模式
  • 用setTorchMode(mode:QCameraTorchMode)方法设置辅助光源模式,在光线不强时可以设置该模式,并会覆盖快闪模式,参数 mode可取值为 QCamera.TorchOffQCamera,TorchOn 或QCamera,TorchAuto。

  • 用setWhiteBalanceMode(mode;QCamera.WhiteBalanceMode)方法设置白平衡模式,白平衡是描述红、绿、蓝三基色混合生成后白色精确度的一项指标。

    • 在房间里的日光灯下拍摄的影像会显得发绿
    • 在室内钨丝灯光下拍摄出来的景物会偏黄
    • 而在日光阴影处拍摄到的照片则偏蓝

    白平衡的作用是不管在任何光源下都能将白色物体还原为白色。参数 mode是 QCamera,WhiteBalanceMode 的枚举值可取的值如表所示。

    QCamera.WhiteBalanceMode的枚举值模式QCamera.WhiteBalanceMode的枚举值模式
    QCamera.WhiteBalanceAuto0自动QCamera.WhiteBalanceSunlight2阳光
    QCamera.WhiteBalanceManual1手动QCamera.WhiteBalanceCloudy3
    QCamera.WhiteBalanceShade4阴影QCamera.WhiteBalanceFlash7快闪
    QCamera.WhiteBalanceTungsten5鸨灯QCamera.WhiteBalanceSunset8日落
    QCamera.WhiteBalanceFluorescent6荧光灯
    • 在手动模式下,需要用setColorTemperature(colorTemperature:int)方法设置色温
  • 用errorString()方法取可读的出错信息,用error()方法取出错类型返回值为QCamera.NoError 或QCamera,CameraError。

视频接口 QCamera的信号

视频接口QCamera 的信号如表所示。

QCanera的信号及参数类型说明
activeChanged(bool)照相机启动或停止时发送信号
cameraDeviceChanged()照相设备发生改变时发送信号
cameraFormatChanged()格式发生改变时发送信号
colorTemperatureChanged()色温发生改变时发送信号
customFocusPointChanged()自定义焦点发生改变时发送信号
exposureCompensationChanged(value: float)曝光补偿发生改变时发送信号
exposureModeChanged()曝光模式发生改变时发送信号
exposureTimeChanged(speed:float)曝光时间发生改变时发送信号
flashModeChanged()快闪模式发生改变时发送信号
flashReady(ready:bool)可以快闪时发送信号
focusDistanceChanged(float)焦距发生改变时发送信号
focusPointChanged()焦点发生改变时发送信号
isoSensitivityChanged(value:int)光敏感值发生改变时发送信号
manualExposureTimeChanged(speed:float)自定义曝光时间发生改变时发送信号
manualIsoSensitivityChanged(int)自定义光敏感值发生改变时发送信号
maximumZoomFactorChanged(float)最大缩放系数发生改变时发送信号
minimumZoomFactorChanged(float)最小缩放系数发生改变时发送信号
supportedFeaturesChanged()所支持的特征发生改变时发送信号
torchModeChanged()辅助光源模式发生改变时发送信号
whiteBalanceModeChanged()白平衡发生改变时发送信号
zoomFactorChanged(float)缩放系数发生改变时发送信号
errorChanged()错误状态发生改变时发送信号
errorOccurred(error:QCamera.Error,errorString: str)出现错误时发送信号
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值