Playsound – воспроизведение аудио

онлайн тренер по питону
Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Введение

Работа со звуком в Python — задача, с которой рано или поздно сталкивается каждый разработчик: от новичка, создающего первую игру, до специалиста, работающего над системами уведомлений. В этих случаях особенно ценится простота, кроссплатформенность и надежность. Библиотека playsound — это один из самых простых способов воспроизведения звука в Python.

В отличие от более тяжеловесных решений, playsound предлагает предельно лаконичный API: всего одна функция для воспроизведения аудиофайла. Тем не менее, за этой простотой кроется множество нюансов, включая работу на разных операционных системах, совместимость с форматами, зависимости и отладку ошибок. Цель этой статьи — предоставить полное руководство по работе с playsound, включая практические кейсы, ограничения, советы по отладке и расширенные примеры использования.


Основная часть

Установка и настройка библиотеки

Установка через pip

pip install playsound

На macOS и Linux может потребоваться установка дополнительных системных зависимостей (например, ffplay, gstreamer, mpg123, afplay).

Проверка версии Python

playsound официально поддерживает Python 3.x. Убедитесь, что используемая версия соответствует требованиям:

python --version

Основы работы с playsound

Импорт и базовое использование

from playsound import playsound

playsound('audio.mp3')
  • Путь может быть как относительным, так и абсолютным

  • Поддерживаются форматы: mp3, wav, ogg (в зависимости от ОС)

Вызов с блокировкой потока

По умолчанию playsound() блокирует поток до завершения воспроизведения.

Пример:
playsound('notif.mp3')  # Дальнейший код будет ждать окончания проигрывания

Асинхронное воспроизведение (через обёртки)

Библиотека playsound не поддерживает нативный неблокирующий режим, но можно обернуть вызов в threading.Thread:

import threading

threading.Thread(target=playsound, args=('sound.mp3',), daemon=True).start()

Платформенные особенности

ОС Поддержка форматов Зависимости Комментарий
Windows .wav, .mp3 встроенная в win32 API Работает "из коробки"
macOS .mp3, .aiff afplay Использует встроенную утилиту
Linux зависит от конфигурации ffplay, gstreamer, mpg123 Часто требует ручной настройки

Обработка ошибок

Примеры ошибок:

  1. FileNotFoundError — файл не найден

  2. PermissionError — нет прав на чтение файла

  3. PlaysoundException — ошибка при запуске плеера

Рекомендации по отладке:

  • Убедитесь в правильности пути

  • Проверьте кодировку названия файла

  • Убедитесь, что зависимости установлены

  • Тестируйте в изолированной среде

Расширенное использование

Воспроизведение нескольких звуков

for i in range(3):
    playsound('beep.mp3')

Циклическое воспроизведение (вручную)

while True:
    playsound('loop.mp3')

Важно: без остановки по событию такое поведение заблокирует скрипт навсегда.

Использование с GUI

Для Tkinter, PyQt, Kivy и других GUI-библиотек рекомендуется использовать threading, чтобы не блокировать интерфейс.

def play_sound():
    playsound('notif.mp3')

button = Button(root, text="Play", command=lambda: threading.Thread(target=play_sound).start())

Частые кейсы использования

  • Уведомления в системах мониторинга

  • Озвучка событий в играх

  • Прототипирование интерфейсов

  • Воспроизведение голосовых инструкций

Ограничения playsound

  • Нет поддержки громкости

  • Нет встроенной остановки/паузы

  • Нет поддержки многоканального аудио

  • Не поддерживает потоковое воспроизведение

  • Нельзя использовать для сложных задач — только базовое воспроизведение

Описание всех функций библиотеки playsound для Python

Библиотека playsound — это максимально простая и удобная утилита для воспроизведения звуковых файлов в Python. Она кроссплатформенная, не требует дополнительных зависимостей и предоставляет всего одну ключевую функцию.


Основная функция

Функция Описание
playsound(path, block=True) Воспроизводит аудиофайл по указанному пути. Параметр path — строка с путем к файлу (может быть относительный, абсолютный или URL). Параметр block (по умолчанию True) определяет, будет ли выполнение программы приостановлено до завершения воспроизведения. Если указать block=False, воспроизведение произойдёт в фоновом потоке.

Технические особенности

Особенность Описание
Поддержка операционных систем Работает на Windows, macOS и Linux. Использует встроенные средства операционной системы: afplay (macOS), wmplayer или aplay (Windows/Linux).
Поддерживаемые форматы Зависит от ОС. Windows — чаще всего .mp3 и .wav, Linux — преимущественно .wav, macOS — .mp3, .aiff.
Асинхронность При block=False звук запускается в отдельном потоке, не блокируя основной поток выполнения. Удобно для GUI-приложений и многозадачных скриптов.
Обработка ошибок При ошибке (например, неверный путь, неподдерживаемый формат) возбуждается исключение PlaysoundException.
Прочие зависимости Не требует сторонних библиотек, кроме системных медиаплееров. Подходит для минималистичных проектов.

Установка

bash
pip install playsound

Для Windows желательно использовать версию 1.2.2, так как более новые версии (1.3+) могут некорректно работать на некоторых системах.


Пример использования

python
from playsound import playsound # Синхронное воспроизведение playsound('audio.mp3') # Асинхронное воспроизведение (звук воспроизводится в фоне) playsound('audio.mp3', block=False)

Заключение

Библиотека playsound остаётся одним из самых лёгких способов воспроизведения звука в Python. Её простота делает её отличным выбором для прототипов, уведомлений и минималистичных проектов. Однако важно понимать ограничения: при необходимости управления воспроизведением, работы с потоками, уровнем громкости — стоит рассмотреть более продвинутые решения.

Тем не менее, если вашей задачей является быстрое воспроизведение .mp3 или .wav-файлов в скрипте — playsound справляется с этим на отлично. Освоение этой библиотеки займёт минуты, но принесёт пользу в десятках проектов.