为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 pygame 在循环内连续播放 mp3 文件?

无法使用 pygame 在循环内连续播放 mp3 文件?

万千封印 2022-10-18 17:00:06
我想播放 mp3,但是当调用的函数是 logCreater 时,错误显示可以加载 mp3。第一次正确播放音频,但当它被召回时,它无法加载 mp3。错误消息说 pygame.mixer.music.load 无法加载 xxxxx.mp3 文件实际上这是 lil 项目,这只是其中的一个模块。请建议我进行代码更正。错误信息是:回溯(最后一次调用):文件“e:\Tutorials etc\ProjBack\Healthy_programmer_cli\MainModule.py”,第 151 行,在 timCount() 文件“e:\Tutorials etc\ProjBack\Healthy_programmer_cli\MainModule.py”,行65,在 timCount EyeExcercise.logCreater() 文件 "e:\Tutorials etc\ProjBack\Healthy_programmer_cli\EyeExcercise.py",第 45 行,在 logCreater pygame.mixer.music.load("Eyesound.mp3") pygame.error: Couldn '不打开'Eyesound.mp3'import osos.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"from os.path import expanduserimport time as timport getpassusernm = getpass.getuser()from datetime import datetimeimport pygamedef userDirFinder():    from os.path import expanduser    usrpth = expanduser("~")    mainp = os.path.join(usrpth, "Documents")    return mainpdef checknSetdir():    mainp=userDirFinder()    target_path = os.path.join(mainp,"HealthManger","Eye_Excercise_log")    if os.path.exists(target_path):        os.chdir(target_path)    else:        os.makedirs(target_path)        os.chdir(target_path)def getCurrentDateandTime():    Dat = datetime.now()    currentD = Dat.strftime("%d/%m/%Y")     currentT = Dat.strftime("%I:%M %p")    return currentD , currentTdef logCreater():        print("Countdown paused")        pygame.mixer.init()        pygame.mixer.music.load("Eyesound.mp3")        pygame.mixer.music.play(-1)        write_msg = f"Eye Excercise Done by {usernm}"
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

第一次正确播放音频,但当它被召回时,它无法加载 mp3

播放完音乐后,当前工作目录在函数中改变checknSetdir,由os.chdir(target_path).

在应用程序开始时获取当前工作目录:

import os
currentWorkDir = os.getcwd()

使用绝对路径加载文件"Eyesound.mp3"

pygame.mixer.music.load(os.path.join(currentWorkDir, "Eyesound.mp3"))


查看完整回答
反对 回复 2022-10-18
  • 1 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号