与 vlc pip 有巨大的回声

Having a massive echo with vlc pip

我尝试让时钟处于活动状态并同时播放音乐。我不知道音乐发生了什么。它开始回声。或者这首歌可能多次开始。我认为这与Gui或Clock的刷新有关。如果有人知道出了什么问题,你真的可以让我开心。

from tkinter import *
import vlc
import datetime


def Clockupdate(time):
    timerefresher.config(text=time)
    Timer = "20:30:00"
    if time == Timer:
        playsound()



def secondrefresher():
    newtime = ""
    oldtime = datetime.datetime.now()
    a = str(oldtime.hour)
    b = str(oldtime.minute)
    c = str(oldtime.second)
    if int(c) < 10:
        c = "0"+str(c)
    if int(b) < 10:
        b = "0"+str(b)
    curtime = (a+":"+b+':'+c)
    if curtime != newtime:
        newtime = curtime
        Clockupdate(newtime)
    timerefresher.after(200, secondrefresher)

def playsound():
    p = vlc.MediaPlayer("file:///Space.mp3")
    root.after(200, p.play)
root = Tk()


timerefresher = Label(root, text = "", bg='black', fg='white', font=('times', 100, 'bold'))

secondrefresher()
timerefresher.pack()

root.mainloop()

如果您想要 运行 的代码,您需要将一个名为 space 的 mp3 放在与此脚本相同的目录中。您还需要将 Timer 变量调整为您想要开始播放音乐的时间。

我 运行 通过将播放歌曲的调用更改为打印语句来进行一点测试。您的 p.play 似乎被调用了 5 次。很可能是因为您设置的滴答声。

我会改变:

timerefresher.after(200, secondrefresher)

收件人:

timerefresher.after(900, secondrefresher) 
# anything between 801 and 999 should work fine without messing with the clock here.

这应该可以防止多次调用 p.play