Phonon的VolumeSlider不会改变音量

时间:2012-10-29 22:51:02

标签: qt qt4 pyqt pyqt4 phonon

我正在尝试创建一个VolumeSlider窗口小部件,用于更改音频输出的音量。

log.debug("Starting audio player (%s)..." % url)
mediaSource = Phonon.MediaSource(url)
mediaSource.setAutoDelete(True)

self.player = Phonon.createPlayer(Phonon.VideoCategory, mediaSource)
self.player.setTickInterval(100)
self.player.tick.connect(self.updatePlayerLength)
self.mediaSlider.setMediaObject(self.player)

audioOutput = Phonon.AudioOutput(Phonon.MusicCategory)
Phonon.createPath(self.player, audioOutput)
self.mediaVolumeSlider.setAudioOutput(audioOutput)

self.player.play()

然而,即使我可以移动音量滑块,实际音量也不会改变。我错过了什么?

1 个答案:

答案 0 :(得分:1)

我从未使用Phonon.createPlayer,因为API似乎完全令人费解。显然,它应该是一个“便利”功能,它在媒体对象和音频输出之间创建一条路径。但它只提供对媒体对象的引用。似乎无法访问音频输出对象,这似乎使它完全没用(但我可能会遗漏一些东西)。

无论如何,我认为明确地创建路径会更方便,因此很清楚所有部分是如何连接在一起的。

以下代码适用于Linux和WinXP:

self.media = Phonon.MediaObject(self)
self.video = Phonon.VideoWidget(self)
self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self)
Phonon.createPath(self.media, self.audio)
Phonon.createPath(self.media, self.video)
self.slider = Phonon.VolumeSlider(self)
self.slider.setAudioOutput(self.audio)