как я могу приостановить запись голоса в python - PullRequest
2 голосов
/ 16 апреля 2020

Я делаю сценарий аудиозаписи, используя 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()
...