Python + winsound – проверьте, воспроизводится ли аудиофайл
Есть ли способ проверить, воспроизводится ли аудиофайл с помощью winsound?
Идея заключается в том, что музыка воспроизводится в фоновом режиме, в то время как пользователь может вводить данные через терминал. Для этого я решил использовать SND_ASYNC.
Дело в том, что, как только файл закончен, я хочу, чтобы он воспроизводил другой звуковой файл, но у меня нет средств проверки, когда звуковой файл действительно воспроизводится.
Полагаю, я мог проверить, как долго звуковой файл и на какой-то другой игре, но я предполагаю, что есть более простой способ сделать это.
Кто-нибудь здесь знает о более легком решении?
- Как играть вектор в Python?
- Воспроизведение звука из данных, хранящихся в переменной в Python
- Подпроцесс Python, процесс уничтожения после временной задержки
- Звуки завершаются до следующего, в python?
- Каков хороший способ изучить звук с помощью python и разделить его между высокими, средними и низкими уровнями для визуализации?
Нет никакого способа сделать это с помощью winsound
; это мертвый простой, минималистский модуль.
Тем не менее, есть довольно простой способ сделать это косвенно: создать фоновый поток для синхронного воспроизведения звука, а затем установить флаг. Или даже просто используйте поток как флаг. Например:
import threading import winsound t = threading.Thread(target=winsound.PlaySound, args=[sound, flags]) while True: do_some_stuff() t.join(0) if not t.is_alive(): # the sound has stopped, do something
С другой стороны, если все, что вы хотите сделать, это воспроизвести другой звук, как только закончите каждый, просто нажмите их все в очереди:
import queue import threading import winsound def player(q): while True: sound, flags = q.get() winsound.PlaySound(sound, flags) q = queue.Queue() t = threading.Thread(target=player, args=[q]) t.daemon = True q.push(a_sound, some_flags) q.push(another_sound, some_flags) do_stuff_for_a_long_time()
- При профилировании Cython Code, что такое `stringsource`?
- Что эквивалентно psycopg curs.mogrify для mysql?
- Динамическое деформирование времени с помощью python (окончательное отображение)
- Дескрипторы функций MFCC для классификации аудио с использованием librosa
- Запуск двух подпроцессов симулятивно
- PYO, Как звучит дорожка для звукового карточного устройства
- Использование суперколлайдера с питоном
- Что такое эквивалент Python Lame MP3 Converter?
- Чтение аудиоданных в реальном времени в массив numpy
- Вставка WAV в определенную точку в аудиофайле с использованием python
- Трубопровод SoX в Python – альтернатива подпроцесса?