【发布时间】:2015-05-01 23:34:49
【问题描述】:
我正在为 Windows PC 构建一个程序,它包含很多按钮并且看起来很简单。所以我想知道,当你按下按钮(使用 tkinter)时,我可以做到这一点,我可以播放声音来让程序活跃一点吗?请记住我正在学习,所以请稍微降低一点。
【问题讨论】:
标签: windows python-3.x button audio tkinter
我正在为 Windows PC 构建一个程序,它包含很多按钮并且看起来很简单。所以我想知道,当你按下按钮(使用 tkinter)时,我可以做到这一点,我可以播放声音来让程序活跃一点吗?请记住我正在学习,所以请稍微降低一点。
【问题讨论】:
标签: windows python-3.x button audio tkinter
您也可以使用pygame。尽管比某些仅用于播放音乐的库慢,但它是跨平台的。
这是在基于 Tkinter 的应用程序中使用它的示例:
import tkinter as tk
from pygame import mixer
mixer.init()
def play_music():
mixer.music.load("sample.ogg")
mixer.music.play()
root = tk.Tk()
tk.Button(root, text="Play music", command=play_music).pack()
root.mainloop()
请务必牢记支持哪些声音格式。来自文档:
声音可以从 OGG 音频文件或未压缩的 WAV 加载。
请注意,MP3 支持是有限的。在某些系统上,不受支持的格式可能会使程序崩溃,例如Debian Linux。考虑改用 OGG。
【讨论】:
from pygame import mixer,然后将所有命令从pygame.mixer.init() 更改为简单地读取mixer.init()
pygame.mixer,就没有必要从pygame 导入所有模块。编辑了答案。
随便用
import os
os.system("play sound.mp3")
【讨论】:
假设您的文件是 WAV:
from tkinter import *
from winsound import *
root = Tk() # create tkinter window
play = lambda: PlaySound('Sound.wav', SND_FILENAME)
button = Button(root, text = 'Play', command = play)
button.pack()
root.mainloop()
假设您的文件是 MP3:
from Tkinter import *
import mp3play
root = Tk() # create tkinter window
f = mp3play.load('Sound.mp3'); play = lambda: f.play()
button = Button(root, text = 'Play', command = play)
button.pack()
root.mainloop()
【讨论】:
您首先需要将鼠标在图像上的点击与偶数处理程序联系起来,然后简单地定义一个 on_click 函数:
def on_click(event):
winsound.Beep('frequency', 'duration')
Here你可以找到更多关于在python中播放声音的信息。
【讨论】: