2017-07-12 3 views
0

私はWindows 7を使用しており、デフォルトのオーディオ入力デバイスの録音ボリュームにアクセス(読み取り/書き込み)できるようにします。PyQt 5.9でオーディオレコーディングボリュームにアクセスする方法は?

PyQt 5.7では、以下のコードが機能し、audio.volume()が実際の記録レベル(0.8など)を返しました。 PyQt 5.8.2と5.9では、以下のアプローチはもはや動作せず、常に0.0を返します(レベルも変更できません)。 1つの違いは、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 

質問:?、どこ私はそれを報告することができますもしそうなら

  • が、これはバグです
  • どのように?オーディオ入力音量レベルにアクセスする必要がありますか?
+0

私は、この質問がより適切かもしれないQtフォーラムを見つけました:http://www.qtcentre.org/threads/68488-How-to-access-audio-recording-volume-in-PyQt-5 -9 – e1i45

+0

バグ報告:https://bugreports.qt.io/browse/QTBUG-61920 – e1i45

答えて

0

この動作の変更がこのcommitで導入されたようです。

新しいQtバージョン(5.8+)で古い動作を復元するには、すべての入力デバイスのリストを取得し、最初のものを取得します。これは、既定のデバイス機能の以前の実装が行ったこととまったく同じです。 Windows 7では、リストの最初のデバイスは常にデフォルトのデバイスです。

関連する問題