首页 > 解决方案 > Mp3 播放器 - 每次播放文件时都会出现“找不到文件”messagebox.showerror

问题描述

下面的代码是一个媒体播放器 (mp3)。它工作得很好,直到我添加了应该显示歌曲长度和时间的 show_details() 函数,播放文件时出现错误消息“找不到文件”(文件确实播放!但每次都会弹出错误消息) . 一旦我删除由“a”、“total_length”和“print”语句组成的 3 行,错误就会停止出现,歌曲当然可以正常播放。我的代码有什么问题?

filelabel = Label(root, text="Let's make some noise!")
filelabel.pack(pady=10)

lengthlabel = Label(root, text="Total Length - 00:00")
lengthlabel.pack(pady=10)

def show_details():
    filelabel['text'] = 'Playing - ' + os.path.basename(filename)
    a = mixer.Sound(filename)
    total_length = a.get_length()
    print (total_length)

def play_music():
    global paused

    if paused:
        mixer.music.unpause()
        statusbar['text'] = 'Music Resumed: Playing ' + os.path.basename(filename)
        paused = False
    else:
        try:
            mixer.music.load(filename)
            mixer.music.play()
            statusbar['text'] = 'Playing - ' + os.path.basename(filename)
            show_details()
        except:
            tkinter.messagebox.showerror('FIle not found', 'Melody could not find the song, please check again')

标签: pythontkinterpygame

解决方案


我看到你同时创建了一个音乐和声音对象。这可能是您回答的线索: 如何在 pygame 中同时播放多个声音?

似乎添加频道可能会解决您的问题。但是先把这三行拿出来看看是不是原因:

a = mixer.Sound(filename)
total_length = a.get_length()
print (total_length)

推荐阅读