用Tkin在while循环中录制声音

2024-09-30 04:26:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个语音录制应用程序,我想在用户按下Tkinter按钮时开始录制,当用户松开按钮时停止录制。在

import Tkinter

def record():
    while True
          Recordning runtines...
          if <button is released>
             stop audio steam...
             break


main = Tkinter.Tk()

b = Tkinter.Button(main, text='rec', command=record)
b.place(x="10", y="10")

main.mainloop()

如何实现“如果按钮被释放”?我需要使用线程吗?在


Tags: 用户importtrue应用程序ifmaintkinterdef
1条回答
网友
1楼 · 发布于 2024-09-30 04:26:37

如果您不想在录制时冻结GUI,我建议您使用多线程。单击并释放按钮可以通过事件^{} and ^{}完成。我已经将代码打包到一个类中,因此它还包含完成工作线程的标志。在

import Tkinter as tk
import threading

class App():
    def __init__(self, master):
        self.isrecording = False
        self.button = tk.Button(main, text='rec')
        self.button.bind("<Button-1>", self.startrecording)
        self.button.bind("<ButtonRelease-1>", self.stoprecording)
        self.button.pack()

    def startrecording(self, event):
        self.isrecording = True
        t = threading.Thread(target=self._record)
        t.start()

    def stoprecording(self, event):
        self.isrecording = False

    def _record(self):
        while self.isrecording:
            print "Recording"

main = tk.Tk()
app = App(main)
main.mainloop()

相关问题 更多 >

    热门问题