2012-10-29 3 views
1

오디오 출력 볼륨을 변경하는 VolumeSlider 위젯을 만들려고합니다.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

API가 전혀 이해가 안되기 때문에 Phonon.createPlayer을 한번도 사용하지 않았습니다. 분명히 미디어 객체와 오디오 출력 사이에 경로를 만드는 "편리한"함수라고 가정합니다. 그러나 미디어 객체에 대한 참조 만 제공합니다. 오디오 출력 객체에 액세스 할 수 없기 때문에 완전히 쓸모없는 것처럼 보일 수 있습니다 (하지만 뭔가 빠져있을 수도 있습니다).

어쨌든 모든 경로가 어떻게 연결되어 있는지 명확하게 알 수 있도록 경로를 명시 적으로 만드는 것이 훨씬 편리하다고 생각합니다.

다음 코드

리눅스와 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) 
+0

그것은했다. 고마워요! – iTayb

관련 문제