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

APIは完全に不可解に見えるので、私はPhonon.createPlayerを使用したことがありません。どうやら、これはメディア オブジェクトとオーディオ出力の間のパスを作成する「便利な」機能であると考えられています。ただし、メディア オブジェクトへの参照のみを提供します。オーディオ出力オブジェクトへのアクセスがないように見えるため、完全に役に立たないように見えます(ただし、何かが欠けている可能性があります)。

いずれにせよ、すべてのパーツがどのように接続されているかが明確になるように、パスを明示的に作成する方がはるかに便利だと思います。

次のコードは、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 に答える