import wave
import threading
import tkinter
import tkinter.filedialog
import tkinter.messagebox
import pyaudioroot = tkinter.Tk()
root.title('Recorder')
root.geometry('270x80+550+300')
root.resizable(False, False)fileName = None
allowRecording = False      #录音状态
CHUNK_SIZE = 1024       #数据块大小
CHANNELS = 2        #频道
FORMAT = pyaudio.paInt16        #16位量化编码
RATE = 44100        #音频采样率def record():global fileNamep = pyaudio.PyAudio()#audio流对象stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK_SIZE)#音频文件对象wf = wave.open(fileName, 'wb')wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)# 读取数据写入文件while allowRecording:data = stream.read(CHUNK_SIZE)wf.writeframes(data)wf.close()stream.stop_stream()stream.close()p.terminate()fileName = Nonedef start():global allowRecording, fileName    fileName = tkinter.filedialog.asksaveasfilename(filetypes=[('未压缩波形文件','*.wav')])if not fileName:returnif not fileName.endswith('.wav'):fileName = fileName+'.wav'allowRecording = TruelbStatus['text'] = 'Recording...'threading.Thread(target=record).start()def stop():global allowRecordingallowRecording = FalselbStatus['text'] = 'Ready'# 关闭程序时检查是否正在录制
def closeWindow():if allowRecording:tkinter.messagebox.showerror('Recording', 'Please stop recording before close the window.')returnroot.destroy()btnStart = tkinter.Button(root, text='Start', command=start)
btnStart.place(x=30, y=20, width=100, height=20)
btnStop = tkinter.Button(root, text='Stop', command=stop)
btnStop.place(x=140, y=20, width=100, height=20)
lbStatus = tkinter.Label(root, text='Ready', anchor='w', fg='green')    #靠左显示绿色状态字
lbStatus.place(x=30, y=50, width=200, height=20)
root.protocol('WM_DELETE_WINDOW', closeWindow)root.mainloop()

Python简单GUI(录音机)相关推荐

  1. Python简单GUI(随机点名)

    import tkinter import tkinter.messagebox import random import threading import itertools import time ...

  2. python简单GUI(模拟记事本)

    import tkinter.filedialog import tkinter.messagebox import tkinter.scrolledtext import tkinter.simpl ...

  3. Python简单GUI(模拟放大镜)

    import tkinter from PIL import ImageGrab, ImageTkroot=tkinter.Tk() screenW=root.winfo_screenwidth() ...

  4. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  5. Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来

    Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...

  6. Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界

    Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界 目录 输出结果 设计思路 输出结果 设计思路 from tkinter import * import tkint ...

  7. python数码时钟代码_Python+Pyqt实现简单GUI电子时钟

    本文实例为大家分享了Python+Pyqt实现简单GUI电子时钟的具体代码,供大家参考,具体内容如下 突发奇想想用GUI做一个简单的电子时钟界面,利用pyqt模块也很方便,代码如下: from PyQ ...

  8. 用 Python 的GUI 库 PySimpleGUI,写一个肥胖指数计算工具,Python开发就是这么简单

    Python 的 GUI 库 PySimpleGUI,写一个简单的有界面的小工具很简单!这里我们来写一个计算肥胖指数(BMI)的小工具.首先,通过百度得到 BMI 指数的计算公式为: 体重 / (身高 ...

  9. python做的简单gui计算器_Python计算器–使用Tkinter创建一个简单的GUI计算器

    在Python计算器教程中,您将学习创建简单的GUI计算器.在这篇文章中,我将向您展示如何使用python中的tkinter模块开发一个简单的计算器.因此,让我们进一步创建一个简单的python计算器 ...

最新文章

  1. java并发问题_并发理论基础:并发问题产生的三大根源
  2. 24 WM配置-策略-入库策略4-定义空存储箱策略L(Next Empty Bin Strategy)
  3. 浅谈Dynamic 关键字系列之三(下):ExpandoObject,DynamicObject,DynamicMetaObject
  4. [转]OC与JS的交互详解
  5. 思科警告:“关键更新”钓鱼攻击窃取用户 Webex 凭证
  6. 面试常备题---插入排序
  7. ovs ovn 学习资料
  8. oracle弱口令攻击
  9. 序列化和反序列化(七)——Java对象的网络传输(二)
  10. php_os用法,使用终端,如何让OS X使用MAMP版本的PHP
  11. ios设置中性黑体_iOS 使用自定义字体 - 苹方字体
  12. DSP SRIO接口认识
  13. 声卡接口 LINE_IN、MIC_IN、LINE_OUT
  14. RPM包安装相关命令
  15. R中安装rgl时“configure: error: missing required library GL”错误的解决方法
  16. 微信大数据推荐算法比赛
  17. Matlab三维绘图------三维曲线图
  18. 基于蜉蝣优化算法的函数寻优算法
  19. VScode神仙插件,程序员必备
  20. python中求某一行的和

热门文章

  1. 2020 年,远程办公太难?技术大佬齐支招!
  2. 10万人参加过的公开课(大数据、AI、云计算、5G、物联网),你都学了吗?
  3. 字节跳动冬令营报名启动,邀你一起备战ICPC世界总决赛!
  4. 华为入局 VR 眼镜能让 VR 早普及几年?|CSDN博文精选
  5. 漫画:趣解鸿蒙 OS 如何实现跨平台?
  6. 5G 兴起,物联网安全危机四伏
  7. 还没用上 JDK 11,12 就要来了
  8. 腾讯网易音乐版权之争,拼的是什么?
  9. 女生适合做程序员吗?
  10. 从15000个Python开源项目中精选TOP30,GitHub平均star为3707,赶紧收藏!