Как записать звук, воспроизводимый внутри скрипта Python? - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть скрипт Python, который просматривает аудиофайлы внутри компьютера и связывает их с функцией воспроизведения звука, которая срабатывает при нажатии определенной клавиши на клавиатуре. Это прекрасно работает, но я хочу иметь возможность записывать любой звук, который я воспроизводил, нажимая клавишу, в аудиофайл, такой как .wav или даже .ogg. Я использую pygame.mixer для загрузки и воспроизведения аудиофайлов.

Я прочитал много учебников в Интернете, но примеры, как правило, касаются записи звука с микрофона. В моем случае мне нужно записать звук, который был произведен внутри скрипта.

Import pygame
pygame.mixer.init(frequency=44100, size=-16, channels=2, buffer=512)
pygame.init()

# 1
# keypress event 'd'
def key1(event):
    global audio_file_name1
    if audio_file_name1:  # play sound if just not an empty string
        sound1 = pygame.mixer.Sound(audio_file_name1)
        sound1.play()

# Browser button 1
def browse1():
    global audio_file_name1
    audio_file_name1 = filedialog.askopenfilename(filetypes=(("Audio Files", ".wav .ogg"), ("All Files", "*.*")))

# playing button 1
def playsound1():

    global audio_file_name1
    if audio_file_name1:  # play sound if just not an empty string
      sound1 = pygame.mixer.Sound(audio_file_name1)
      sound1.play()

# 2
# keypress event 'a'
def key2(event):
    global audio_file_name2
    if audio_file_name2:  # play sound if just not an empty string
        sound2 = pygame.mixer.Sound(audio_file_name2)
        sound2.play()


# Browser button 2
def browse2():
    global audio_file_name2
    audio_file_name2 = filedialog.askopenfilename(filetypes=(("Audio Files", ".wav .ogg"), ("All Files", "*.*")))


# playing button 2
def playsound2():
    # we will also use the audio_file_name global variable
    global audio_file_name2
    if audio_file_name2:  # play sound if just not an empty string
        sound2 = pygame.mixer.Sound(audio_file_name2)
        sound2.play()

root = Tk()
frame = Frame(root)
audio_file_name1 = ''

# browse button 1
b1 = Button(root, text='open file', bg="yellow", command=browse1)  # browser button 1
b1.pack(anchor=CENTER)

#  playing sound button 1

p1 = Button(root, text='Som1', command=playsound1)  # playsound1
#p1.pack(anchor=W)

# browse button 2
b2 = Button(root, text='open file', bg="light green", command=browse2)  # browser button 2
b2.pack(anchor=CENTER)

#  playing sound button 2

p2 = Button(root, text='Som2', command=playsound2)  # playsound2
#p2.pack(anchor=W)

root.bind('d', key1)
root.bind('a', key2)
root.mainloop()

Теперь я не могу записать звуки, которые я играл. я хочу иметь возможность записывать звуки в аудиофайле .wav или .ogg Спасибо за любую помощь !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...