python - 使用 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()
解决方案
推荐阅读
- python - Python缺少参数
- mysql - Oracle:获取具有相同日期的最后一条记录
- mongodb - MongoDB aggregation $graphLookup - find "connections" in common in collections of following relationships
- firebase - GDPR 和 Firebase 实时数据库 - 身份验证和用户识别:如何匿名化 Firebase 上的用户数据?
- javascript - 通过 JavaScript 添加的元素的样式不适用于我的 Phonegap 项目
- java - Java 整数常量 - 拆箱
- laravel-passport - 注册时的 Laravel Passport invalid_credentials
- c# - 如何通过 Code First 为实体框架上的列表属性创建唯一约束
- node.js - 节点和 Visual Studio
- javascript - 如何防止引导选项卡破坏非活动内容?[有状态标签切换]