使用 WXPython 在 Python 中的计时精度
Posted
技术标签:
【中文标题】使用 WXPython 在 Python 中的计时精度【英文标题】:Timing accuracy in Python using WXPython 【发布时间】:2013-11-25 20:13:46 【问题描述】:我正在制作一个简单的 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】:我认为您无法在任何 GUI 库中可靠地混合 mp3 播放。这不是为了同步声音,如果你只是调用两个函数播放 mp3 我相信没有办法控制时间。
想到的最简单的方法是先混合两个曲目然后播放(如this question)。这还不够好吗?
【讨论】:
以上是关于使用 WXPython 在 Python 中的计时精度的主要内容,如果未能解决你的问题,请参考以下文章
如何为python 3.6安装wxPython phoenix