Как загрузить несколько песен / треков в Pygame? - PullRequest
2 голосов
/ 20 января 2020

Есть ли способ загрузить несколько песен в Pygame? Я не говорю о звуковых эффектах, подобных этому:

crash_sound = pygame.mixer.Sound("crash.ogg")
#and
pygame.mixer.Sound.play(crash)

, потому что я знаю, что вы можете иметь несколько разных звуковых эффектов, назначенных разным переменным, очевидно. Но я говорю о функции musi c в pygame (эта):

pygame.mixer.music.load("chill_music.ogg")
#and
pygame.mixer.music.stop()

, потому что вы не можете назначить ее переменным или что-то еще, вы просто устанавливаете mixer.musi c вещь в один файл ogg и не может иметь больше. Мне нужна эта функция, потому что она позволяет мне установить значение '-1', заставляя ее проигрываться снова и снова, что, я уверен, вы не можете сделать со звуковыми эффектами, но я хочу две разные песни для двоих разные уровни. Я надеюсь, что это имеет смысл. Спасибо

1 Ответ

1 голос
/ 20 января 2020

Мне нужна эта функция, потому что она позволяет мне установить значение '-1', заставляя его проигрываться снова и снова, что, я уверен, вы не можете сделать со звуковым эффектом

На самом деле, вы можете :

play()
начать воспроизведение звука
play(loops=0, maxtime=0, fade_ms=0) -> Channel

Аргумент loop определяет, сколько раз будет повторяться семпл после первого воспроизведения. ... Если для циклов установлено значение -1, звук будет l oop бесконечно (хотя вы все равно можете вызвать stop (), чтобы остановить его).

Таким образом, вы можете использовать класс Sound .

но мне нужны две разные песни для двух разных уровней

Ничто не мешает вам снова вызвать pygame.mixer.music.load(...) с другим звуковым файлом. Он остановит воспроизведение текущего файла и запустит новый.

Примечание:

Разница между воспроизведением музыки c и обычным воспроизведением звука что файлы musi c передаются в потоковом режиме и фактически никогда не загружаются одновременно ...

Итак, если ваши файлы musi c довольно большие и вы не хотите хранить их в памяти использование pygame.mixer.music - это путь к go. Если вы не возражаете против полной загрузки файлов, вы можете использовать класс Sound.

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