Systemlautstärke lesen/schreiben

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
waddehaddedudeda
User
Beiträge: 1
Registriert: Freitag 28. Januar 2011, 14:30

Window 7 32 bit, Python 2.7, PySide-1.0.0beta4qt471.win32-py2.7.exe
Ich suche einen Weg, plattformübergreifend die Lautstärke zu lesen/schreiben. Muss nicht unbedingt Python sein, wäre aber schön.
sndvol.exe ist das Mixer-Gui für Windows 7. Links ist Device>Speakers der Master-Lautstärkeregler.
Ich möchte nun den Master-Lautstärkeregler abfragen/setzen.

Da ich mich nicht mit den unterschiedlichen Systemen rumschlagen wollte (und es nicht kann) habe ich an QT gedacht.
Das umfasst das Modul Phonon.

Mein Plan war, mit dem Default audio device zu verbinden, und dessen Lautstärke einzustellen.
Leider klappt das nicht.

Folgendes Beispiel spielt eine Audiodatei ab (ich will nichts abspielen, das ist nur zum Probieren).
Der im GUI angezeigte Regler startet bei 100% und steuert die Lautstärke der Widergabe. Im Mixer erscheint unter Applications auch "python".
Der Regler hat keinen Einfluss auf den Regler im Mixer (weder Application "python" noch Device "Speakers").

Gibt es da eine Möglichkeit?

Code: Alles auswählen

import sys
import serial

from PySide.QtCore import *
from PySide.QtGui import *
import PySide.phonon

app = QApplication(sys.argv)

devicelist = PySide.phonon.Phonon.BackendCapabilities.availableAudioOutputDevices()
print "Listing available audio output devices:"
for device in devicelist:
	print " device:", device
	print "  description:", device.description()
	print "  index:", device.index()
	print "  isValid:", device.isValid()
	print "  name:", device.name()
	print "  property:", device.property( str( device.name() ) )
	print "  propertyNames:", device.propertyNames()
	print


mediaObject = PySide.phonon.Phonon.MediaObject()
mediaObject.setCurrentSource( PySide.phonon.Phonon.MediaSource("some.mp3") )
audioOutput = PySide.phonon.Phonon.AudioOutput(PySide.phonon.Phonon.NoCategory)
#~ audioOutput.name = "Python Phonon"
audioOutput.setName("Python Phonon")

print audioOutput.volume()
print audioOutput.name()
path = PySide.phonon.Phonon.createPath(mediaObject, audioOutput);

#~ audiodev = PySide.phonon.Phonon.AudioOutput()
#~ slider = PySide.phonon.Phonon.VolumeSlider(audiodev)

mediaObject.play()

slider = PySide.phonon.Phonon.VolumeSlider( audioOutput )
slider.setOrientation( Qt.Vertical )
slider.show()

app.exec_()
sys.exit()
Antworten