Я делаю сценарий аудиозаписи, используя python. в этом сценарии я могу начать запись одним нажатием кнопки и остановить запись другой кнопкой.
Но что если я захочу приостановить запись на некоторое время, затем снова начать запись (используя кнопку) ,
Как мне добиться этого, мой текущий код ниже ..
import pyaudio
import wave
import threading
import tkinter as tk
from tkinter import *
chunk = 1024
sample_format = pyaudio.paInt16
channels = 2
fs = 44100
frames = []
def startrecording():
b = pyaudio.PyAudio()
stream = b.open(format=sample_format,channels=channels,rate=fs,frames_per_buffer=chunk,input=True)
isrecording = True
print('Recording')
t = threading.Thread(target=record)
t.start()
def stoprecording():
isrecording = False
print('recording complete')
filename='test1'
filename = filename+".wav"
#self.filename = asksaveasfile(initialdir = "/",title = "Save as",mode='w',filetypes = (("audio file","*.wav"),("all files","*.*")),defaultextension=".wav")
wf = wave.open(filename, 'wb')
wf.setnchannels(channels)
wf.setsampwidth(b.get_sample_size(sample_format))
wf.setframerate(fs)
wf.writeframes(b''.join(frames))
wf.close()
main.destroy()
def record():
while isrecording:
data = stream.read(chunk)
frames.append(data)
root = tk.Tk()
sound_btn = tk.Button(root, text='start Recording', width=20,command=startrecording )
sound_btn.grid(row=0, column=1)
stop_btn = tk.Button(root, text='stop Recording', width=20,command=stoprecording )
stop_btn.grid(row=0, column=2)
root.mainloop()