用PyQT4和Phonon交叉淡化音频

1 投票
1 回答
710 浏览
提问于 2025-04-15 22:57

我正在尝试让音频文件在播放时进行交叉淡入淡出,使用的是phonon库和PyQT4框架。我已经能够正确地排队播放音轨,但在淡入淡出效果上遇到了困难。我觉得我需要使用KVolumeFader这个效果。以下是我现在的代码:

def music_play(self):
    self.delayedInit()
    self.m_media.setCurrentSource(Phonon.MediaSource(self.playlist[self.playlist_pos]))
    self.m_media.play()

def music_stop(self):
    self.m_media.stop()

def delayedInit(self):
    if not self.m_media:
        self.m_media = Phonon.MediaObject(self)
        audioOutput = Phonon.AudioOutput(Phonon.MusicCategory, self)
        Phonon.createPath(self.m_media, audioOutput)

def enqueueNextSource(self):
    if len(self.playlist) >= self.playlist_pos+1:
        self.playlist_pos += 1
        self.m_media.enqueue(Phonon.MediaSource(self.playlist[self.playlist_pos]))
    else:
        self.m_media.stop()

有没有人能给我一些关于如何实现这个效果的建议呢?

1 个回答

2

看起来我找到了我想要的解决办法。虽然并不是所有的phonon后端都支持这个功能,但如果把MediaObject的transitionTime设置为一个负数,就可以实现渐变效果。

撰写回答