Spec-Zone.ru › Pygame
pygame.mixer.music
модуль pygame для управления потоковым аудио

Модуль music тесно связан с pygame.mixer. Используйте модуль music для управления воспроизведением музыки в звуковом миксер.

Разница между воспроизведением музыки и обычным воспроизведением звука заключается в том, что музыка воспроизводится потоково и никогда не загружается полностью сразу. Система микшера поддерживает только один музыкальный поток одновременно.

В более старых версиях pygame поддержка MP3 была ограничена под Mac и Linux. Это изменилось в pygame v2.0.2, который получил улучшенную поддержку MP3. Рассмотрите возможность использования OGG формата файла для музыки, поскольку в большинстве случаев он обеспечивает немного лучшую сжатие, чем MP3.

pygame.mixer.music.load()
Загрузка музыкального файла для воспроизведения
load(filename) -> None
load(fileobj, namehint="") -> None

Это загрузит имя файла/объект файла музыки и подготовит его к воспроизведению. Если музыкальный поток уже воспроизводится, он будет остановлен. Это не запускает воспроизведение музыки.

Если вы загружаете из объекта файла, параметр namehint можно использовать для указания типа музыкальных данных в объекте. Например: load(fileobj, "ogg").

Изменено в pygame 2.0.2: Добавлен необязательный namehint аргумент

pygame.mixer.music.unload()
Выгрузка загруженной музыки для освобождения ресурсов
unload() -> None

Это закрывает ресурсы, такие как файлы, для любой загруженной музыки.

Новое в pygame 2.0.0.

pygame.mixer.music.play()
Запуск воспроизведения музыкального потока
play(loops=0, start=0.0, fade_ms=0) -> None

Это воспроизведет загруженный музыкальный поток. Если музыка уже воспроизводится, она будет перезапущена.

loops — необязательный целочисленный аргумент, который по умолчанию равен 0, который указывает, сколько раз нужно повторить музыку. Музыка повторяется бесконечно, если этот аргумент установлен в -1.

start — необязательный числовой аргумент, который по умолчанию равен 0.0, который обозначает позицию во времени, с которой начинается воспроизведение музыки. Начальная позиция зависит от формата воспроизводимой музыки. MP3 и OGG используют позицию как время в секундах. Для файлов MP3 выбранная позиция начального времени может быть неточной, поскольку такие вещи, как кодирование с переменной скоростью передачи данных и теги ID3, могут нарушить вычисления времени. Для музыки MOD это порядковый номер паттерна. Передача начальной позиции приведет к ошибке NotImplementedError, если начальную позицию нельзя установить.

fade_ms — необязательный целочисленный аргумент, который по умолчанию равен 0, который обозначает период времени (в миллисекундах), в течение которого музыка будет плавно нарастать от уровня громкости 0.0 до максимальной громкости (или уровня громкости, ранее установленного функцией set_volume()). Образец может закончиться до завершения плавного нарастания громкости. Если музыка уже воспроизводится, fade_ms игнорируется.

Изменено в pygame 2.0.0: Добавлен необязательный fade_ms аргумент

pygame.mixer.music.rewind()
перезапуск музыки
rewind() -> None

Сбрасывает воспроизведение текущей музыки в начало. Если ранее использовалась функция pause() для приостановки музыки, музыка останется приостановленной.

Примечание

rewind() поддерживает ограниченное количество типов файлов, и, в частности, файлы WAV НЕ поддерживаются. Для неподдерживаемых типов файлов используйте play(), которая перезапустит воспроизведение уже воспроизводимой музыки (обратите внимание, что это снова запустит воспроизведение музыки, даже если она была ранее приостановлена).

pygame.mixer.music.stop()
остановка воспроизведения музыки
stop() -> None

Останавливает воспроизведение музыки, если оно в данный момент выполняется. Будет вызвано событие endevent, если оно установлено. Музыка не будет выгружена.

pygame.mixer.music.pause()
временная остановка воспроизведения музыки
pause() -> None

Временно останавливает воспроизведение музыкального потока. Его можно возобновить с помощью функции unpause().

pygame.mixer.music.unpause()
возобновление приостановленной музыки
unpause() -> None

Это возобновит воспроизведение музыкального потока после его приостановки.

pygame.mixer.music.fadeout()
остановка воспроизведения музыки после плавного выключения звука
fadeout(time) -> None

Плавно выключает и останавливает текущую воспроизводимую музыку.

Аргумент time обозначает целые миллисекунды, в течение которых генерируется эффект плавного уменьшения громкости.

Обратите внимание, что эта функция блокирует выполнение, пока музыка не выключится плавно. Вызовы fadeout() и set_volume() не будут иметь никакого эффекта в течение этого времени. Если событие было установлено с помощью set_endevent(), оно будет вызвано после того, как музыка выключится плавно.

pygame.mixer.music.set_volume()
установка громкости музыки
set_volume(volume) -> None

Устанавливает громкость воспроизведения музыки.

Аргумент volume — это число с плавающей точкой от 0.0 до 1.0, которое устанавливает уровень громкости. При загрузке новой музыки громкость сбрасывается до максимальной. Если volume имеет отрицательное значение, оно будет проигнорировано, и громкость останется на текущем уровне. Если аргумент volume больше, чем 1.0, громкость будет установлена в 1.0.

pygame.mixer.music.get_volume()
получение громкости музыки
get_volume() -> значение

Возвращает текущую громкость для миксера. Значение будет находиться между 0.0 и 1.0.

pygame.mixer.music.get_busy()
проверка, воспроизводится ли музыкальный поток
get_busy() -> bool

Возвращает True, когда музыкальный поток активно воспроизводится. Когда музыка бездействует, возвращает False. В pygame 2.0.1 и выше эта функция возвращает False, когда музыка приостановлена. В pygame 1 она возвращает True, когда музыка приостановлена.

Изменено в pygame 2.0.1: Возвращает False, когда музыка приостановлена.

pygame.mixer.music.set_pos()
установка позиции для воспроизведения
set_pos(pos) -> None

Это устанавливает позицию в музыкальном файле, с которой начнется воспроизведение. Значение «pos», число с плавающей точкой (или число, которое можно преобразовать в число с плавающей точкой), зависит от формата музыки.

Для файлов MOD pos — это целочисленный номер паттерна в модуле. Для OGG это абсолютное положение в секундах от начала звука. Для файлов MP3 это относительное положение в секундах от текущего положения. Для абсолютного позиционирования в файле MP3 сначала вызовите rewind().

Другие форматы файлов не поддерживаются. Более новые версии SDL_mixer имеют лучшую поддержку позиционирования, чем более старые. Если определенный формат не поддерживает позиционирование, возникает ошибка SDLError.

Функция set_pos() вызывает подлежащую функцию SDL_mixer Mix_SetMusicPosition.

Новое в pygame 1.9.2.

pygame.mixer.music.get_pos()
получить время воспроизведения музыки
get_pos() -> время

Это возвращает количество миллисекунд, в течение которых воспроизводилась музыка. Возвращаемое время учитывает только время воспроизведения, а не любые начальные смещения.

pygame.mixer.music.queue()
помещение файла звука в очередь для воспроизведения после текущего
queue(filename) -> None
queue(fileobj, namehint="", loops=0) -> None

Это загружает файл звука и помещает его в очередь. Файл звука в очереди начнёт воспроизводиться сразу после естественного завершения текущего звука. Одновременно может быть только один файл в очереди. Добавление нового звука в очередь, когда уже есть другой звук в очереди, приведёт к тому, что новый звук станет звуком в очереди. Кроме того, если текущий звук когда-либо остановится или изменится, звук в очереди будет утерян.

Если вы загружаете из объекта файла, параметр namehint может использоваться для указания типа данных музыки в объекте. Например: queue(fileobj, "ogg").

Следующий пример воспроизведёт музыку Баха шесть раз, а затем музыку Моцарта один раз:

pygame.mixer.music.load('bach.ogg')
pygame.mixer.music.play(5)        # Plays six times, not five!
pygame.mixer.music.queue('mozart.ogg')

Изменено в pygame 2.0.2: Добавлен необязательный namehint аргумент

pygame.mixer.music.set_endevent()
принуждение музыки отправлять событие при остановке воспроизведения
set_endevent() -> None
set_endevent(type) -> None

Это заставляет Pygame сигнализировать (через очередь событий) о завершении воспроизведения музыки. Аргумент определяет тип события, которое будет помещено в очередь.

Событие будет помещено в очередь каждый раз при завершении воспроизведения музыки, а не только в первый раз. Чтобы остановить помещение события в очередь, вызовите этот метод без аргументов.

pygame.mixer.music.get_endevent()
получить событие, которое канал отправляет при остановке воспроизведения
get_endevent() -> тип

Возвращает тип события, которое будет отправляться каждый раз при завершении воспроизведения музыки. Если нет события окончания, функция возвращает pygame.NOEVENT.




Изменить на GitHub

© Pygame Developers.
Licensed under the GNU LGPL License version 2.1.
https://www.pygame.org/docs/ref/music.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API