使用WXPython在Python中的计时准确性

时间:2013-11-25 20:13:46

标签: python wxpython

我正在制作一个简单的MP3播放器,一次播放多个mp3。它就像混合一样。时机对于确保愉快的用户体验至关重要,否则它听起来就像两只猫试图解决中东危机。我需要精度低至10毫秒,如果不能解决,可能需要1毫秒的准确度。

目前,我正在使用wxpython,我发现定时功能非常差(但非常适合音频播放)。

import wx
import wx.media

class MediaPanel(wx.Panel):
    INTERVAL = 10

    def tick(self, event):
        self.totalMS += self.INTERVAL

        if mixstart == self.totalMS:
            # play the song

        elif mixend == self.totalMS:
            # stop the song

        else 
            pass

所以这是我的问题:我发现时间不一致。我可以将相同的歌曲加载到播放列表中以备混合,并且它会在随机时间混合。我一般都是编程新手,从我所知道的,它是不准确的计时功能。出于调试目的,我将打印出一个时间戳,让我知道我在函数中的位置。由于某种原因,计时器将随机停止,然后再次启动。

问题:有更好的方法吗?或者wx刚刚被打破了这样的事情?

1 个答案:

答案 0 :(得分:0)

我认为你不能在任何GUI库中可靠地混合mp3播放。它并不意味着同步声音,如果你只是调用两个播放mp3的函数,我相信没有办法控制时间。

最简单的想法是首先混合两首曲目,然后再播放(如this question中所示)。那不够好吗?