【问题标题】:How to access audio recording volume in PyQt 5.9?如何在 PyQt 5.9 中访问录音音量?
【发布时间】:2017-07-12 21:04:59
【问题描述】:

我使用的是 Windows 7,我希望能够访问(读/写)默认音频输入设备的录音音量。

在 PyQt 5.7 中,下面的代码有效,并且 audio.volume() 返回了实际的录音级别(例如 0.8)。在 PyQt 5.8.2 和 5.9 中,下面的方法不再起作用,它总是返回 0.0(我也无法更改级别)。我注意到的一个区别是 5.8 和 5.9 的音频输入设备名称为“默认输入设备”,而在 5.7 中它是实际(截断的)设备名称(例如“麦克风(Logitech USB Headse”)。这对我来说很有意义当我要求默认设备时,它会返回“默认输入设备”。

import PyQt5.QtCore
from PyQt5 import QtMultimedia

PyQt5.QtCore.PYQT_VERSION_STR  # '5.9'

audioFormat = QtMultimedia.QAudioFormat()
audioFormat.setChannelCount(1)
audioFormat.setSampleRate(16000)
audioFormat.setSampleSize(16)
audioFormat.setCodec("audio/pcm")
audioFormat.setByteOrder(QtMultimedia.QAudioFormat.LittleEndian)
audioFormat.setSampleType(QtMultimedia.QAudioFormat.SignedInt)

info = QtMultimedia.QAudioDeviceInfo.defaultInputDevice()

info.deviceName()  # 'Default Input Device'
audio = QtMultimedia.QAudioInput(info, audioFormat)
audio.volume()  # 0.0

info.isFormatSupported(audioFormat)  # True

我的问题:

  • 这是一个错误吗?如果有,我在哪里可以举报?
  • 我应该如何访问音频输入音量?

【问题讨论】:

标签: python qt audio pyqt5


【解决方案1】:

看起来这种行为变化是通过 commit 引入的。

要在新 Qt 版本(5.8+)中恢复旧行为:获取所有输入设备的列表并取第一个。这与之前实现的默认设备功能完全相同。在 Windows 7 上,列表中的第一个设备始终是默认设备。

【讨论】:

    猜你喜欢
    • 2017-10-04
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2011-09-01
    相关资源
    最近更新 更多