Как воспроизвести звук при нажатии кнопки tkinter?
Я создаю программу для ПК с Windows, которая содержит много кнопок и выглядит очень просто. Мне было интересно, могу ли я сделать так, чтобы при нажатии кнопки (с помощью tkinter) можно было воспроизвести звук, чтобы немного оживить программу? Пожалуйста, имейте в виду, что я учусь, поэтому, пожалуйста, немного поторопитесь.
4 ответа
Предполагая, что ваш файл 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()
Вы также можете использовать библиотеку Pygame. Хотя он работает немного медленнее, чем некоторые библиотеки только для воспроизведения музыки, его основным преимуществом является то, что он кроссплатформенный, в то время как многие другие библиотеки для воспроизведения музыки на Python нет. Вот пример его использования в приложении на основе Tkinter:
from tkinter import *
import pygame
pygame.mixer.init()
def play_music():
pygame.mixer.music.load("sample.mp3")
pygame.mixer.music.play()
root = Tk()
Button(root, text="Play music", command=play_music).pack()
root.mainloop()
Сначала вам нужно связать щелчок мыши на изображении с помощью четного обработчика, а затем просто определить функцию on_click:
def on_click(event):
winsound.Beep('frequency', 'duration')
Здесь вы можете найти больше информации о воспроизведении звуков в Python.