1

我正在尝试创建一个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()

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

4

1 回答 1

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)
于 2012-10-30T17:16:07.560 回答