#python #audio
#python #Аудио
Вопрос:
Как я могу создать программу, которая воспроизводит звук, который я определяю, удерживая нажатой клавишу? Я могу воспроизводить разные ноты с помощью winsound.Звуковой сигнал (), но я не думаю, что это действительно помогает.
Комментарии:
1. «Я не думаю, что это действительно помогает» мало что дает с точки зрения ваших критериев.
2. Я просто хочу сказать, что я пытался использовать библиотеку winsound для этого, но безрезультатно.
Ответ №1:
Если вы просто хотите использовать стандартную библиотеку и используете, вы можете использовать msvcrt, чтобы получить текущее нажатие клавиши и сопоставить его с частотой.
import msvcrt
import time
import winsound
notes = {'a': 440, 's': 935, 'd': 1039}
while True:
key = msvcrt.getch()
try:
note = notes[key]
except KeyError:
note = 0
winsound.Beep(note, 10)
time.sleep(0.01)
Комментарии:
1. Это просто повторяет звуковой сигнал (или, как он воспроизводится на моем компьютере, скорее щелчок) быстро, когда кнопка удерживается нажатой. Я имею в виду плавный тон, пока нота удерживается нажатой. Возможно ли это с помощью winsound или мне понадобится другая библиотека?
2. Я сделал это частично из памяти, мой текущий компьютер, похоже, не поддерживает функцию звукового сигнала, в какой-то момент я подумал, что она должна быть постоянной, но я могу ошибаться.
3. @Paul Вторым аргументом
winsound.Beep()
является длительность звукового сигнала в миллисекундах. Вы могли бы включить это число, чтобы получить более длинную ноту, но если вы используетеgetch()
для ввода, программа не сможет узнать, как долго вы удерживаете нажатой клавишу.4. В таком случае, есть ли что-то еще, кроме winsound. Звуковой сигнал (), который можно использовать для воспроизведения звука во время чего-либо, например, нажатия клавиши?
5. Может быть, pygame? или просто предварительно создайте аудио.
Ответ №2:
Модуль winsound позволяет воспроизводить не только звуковые сигналы, взгляните на winsound.PlaySound
:
winsound.PlaySound('mySound.wav', winsound.SND_FILENAME)
Когда пользователь удерживает нажатой клавишу, вы обычно получаете несколько нажатий клавиш за короткое время.
Комментарии:
1. Я изучал PlaySound, но мне просто интересно получить плавный тон на частоте, описываемой программой.