首页 > 解决方案 > 使用 tkinter 的 Python 音频浏览器和使用 pygame 播放的音频

问题描述

我有一个 python 脚本,当按下 tkinter 按钮时,它会从用户选择的计算机播放声音文件。现在我想将使用来自 tkinter 的 filedialog 浏览的声音文件放入一个变量中,该变量不仅可以通过另一个 tkinter 按钮作为命令播放,还可以让 pygame 接收来自 keypressed 的输入以播放由用户。

因此,用户有一个浏览器声音按钮来搜索声音文件,之后他可以使用 tkinter 的另一个按钮播放声音,或者他可以按计算机中的某个键(例如p键)播放选择的声音。我附上了我的代码寻求帮助。谢谢你的帮助!!!

import pygame
from tkinter import *
from tkinter import filedialog

pygame.mixer.init(frequency=44100, size=-16, channels=2, buffer=512)
pygame.init()

root = Tk()

audio_file_name1 = ''

def open_masker1():
    global audio_file_name1
    audio_file_name1 = filedialog.askopenfilename(filetypes=(("Audio Files", ".wav .ogg"),   ("All Files", "*.*")))

def playsound1():
    # we will also use the audio_file_name global variable
    global audio_file_name1

    if audio_file_name1:  # play sound if just not an empty string
        noise = pygame.mixer.Sound(audio_file_name1)
        noise.play()

b1 = Button(root, text = 'open file',command = open_masker1)  # browser button 1
b1.pack(anchor=CENTER)

p1 = Button(root, text = 'Som1', command = playsound1)  # playsound1
p1.pack(anchor=W)

root.mainloop()

标签: pythonaudiotkinterpygame

解决方案


推荐阅读