【问题标题】:Importing and using mp3s on button press按下按钮时导入和使用 mp3
【发布时间】:2021-01-08 05:10:51
【问题描述】:

所以我在遵循 Kite youtube 教程后编写了游戏 2048 的“副本”。我想在您单击箭头键(在游戏中移动东西)时添加一个小的 mp3 来播放,但我不完全确定我在这里做的是对还是错。我该怎么做呢? 我已经剪掉了重要的东西(导入音乐是我的 mp3 的文件夹)

import tkinter as tk
import mp3play
import music

我得到的两个错误在下面,Tk() 中的 Tk 带有下划线,而左侧的根 (root...) 当我尝试像这样运行代码时,它会突出显示“import mp3play”并说存在语法错误。不知道为什么,实际上我也通过 pip 安装程序安装了 mp3play

root = Tk()

f = mp3play.load('beep.mp3'); play = lambda: f.play()
button = left(root, text = "Play", command = play)
button.pack()
root.mainloop()

在两个中间部分之间是上、下、左和右的定义,但这只会使这个问题变得混乱

这是我引用的stackoverflow,老实说我不明白其中的一半。 How can I play a sound when a tkinter button is pushed?

【问题讨论】:

  • Tk() 应该是 tk.Tk()left() 在哪里定义?应该改为tk.Button() 吗?
  • 请注意,mp3play 模块与 Python 3 不兼容。
  • 我已经添加了答案,请告诉我
  • 你说你用新代码替换了代码,但我没有看到我的答案的任何片段
  • 1 秒后忘记编辑了

标签: python tkinter mp3


【解决方案1】:

看看这个使用winsound 的简单示例,它更容易处理小的哔哔声。

from tkinter import *
import winsound

root = Tk()

def play():
    winsound.Beep(1000, 100)

b = Button(root,text='Play',command=play)
b.pack()

root.mainloop()

winsound.Beep(1000, 100) 接受两个位置参数,1000 是频率,100 是持续时间,以毫秒为单位。

如果有任何错误或疑问,请告诉我。

干杯

【讨论】:

  • 我还在研究它,但大部分都有效,我现在可以初始化游戏并玩它,但它一直说“pygame.error:无法打开 beep.wav”我是将编辑帖子以显示我的按钮代码。 b、b1、b2 也是他们自己的东西还是我应该把它整合到我的按钮中?
  • @Addabhi 尝试使用在线转换器更改音频格式,然后重试
  • 我已经从 mp3 转换为 wav 但我可以尝试其他支持的格式
  • @Addabhi 请尝试使用您使用pygame的位置更新代码
  • 您也可以直接使用您的mp3 文件。 wav 或 mp3 的问题可能是解码和频率高于 pygame 可以处理的,因此无法打开文件。
猜你喜欢
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多