@John_Berden

Как записывать аудио в Python с паузой и без duration time?

Когда-то, на C# я писал программу, в которой мне нужна была запись звука. И мне нужны были такие функции, как запись, остановка, пауза и возобновление, и все это в высокоуровневой библиотеке или обертке.
И я нашел такую библиотеку, все было ясно и понятно.
И сейчас я столкнулся с такой проблемой в Python, что не могу найти что-то подобного!
pyaudio, sounddevice, с помощью них можно сделать что-то, но это достаточно низкий уровень.
Сложность в том, что они для записи требуют duration time, т.е время записи, которое нужно задать изначально. В моем же случае, запись должна продолжаться, пока не будет вызван соответствующий код для остановки.
Я нашел код для записи без duration time в sounddevice, но он по прежнему сложен, и не является библиотекой, чтобы использовать в иных частях кода:
https://github.com/spatialaudio/python-sounddevice...
Самый простой способ записи, который мне удалось найти, это использование библиотеки recorder:
https://pypi.org/project/recorder/
Вот код простого диктофона, который мне удалось обнаружить:

import tkinter as tk
from tkinter import *
import recorder 

window = Tk()#creating window
window.geometry('700x300')#geomtry of window
window.title('TechVidvan')#title to window
Label(window,text="Click on Start To Start Recording",font=('bold',20)).pack()#label

rec = recorder.Recorder(channels=2)
running = None

def start():
    global running

    if running is not None:
        print('already running')
    else:
        running = rec.open('untitled.flac', 'wb')
        running.start_recording()
    Label(window,text='Recording has started').pack()

def stop():
    global running

    if running is not None:
        running.stop_recording()
        running.close()
        running = None
        Label(window,text='Recording has stoped').pack()
    else:
        print('not running')


Button(window,text='Start',bg='green',command=start,font=('bold',20)).pack()#create a button
Button(window,text='Stop',bg='green',command=stop,font=('bold',20)).pack()#create a button

window.mainloop()


Но вопрос с паузой и возобновлением все еще остается открытым.
Быть может, посоветуете что?
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы