2013-07-04 6 views
1

Я пытаюсь использовать фоновой музыкальный плеер Pygame (pygame.mixer.music.load ('music.mp3'), pygame.mixer.music.play (-1, 45.0)), чтобы играть фоновая музыка, но когда я запускаю модуль, окно запуска перестает отвечать почти сразу. У меня есть остановка в моей программе, в конце, и у меня есть mp3 в той же папке, что и файл python, и FPS ограничен. Я уверен, что код правильный. Я не могу думать ни о чем другом, кроме простой компьютерной тошноты, которая может пойти не так.Pygame Sound File Crashing IDLE

+1

Show usre code – Serial

+0

Вы можете попробовать с помощью ogg-файла. 'Имейте в виду, что поддержка MP3 ограничена ... Вместо этого используйте OGG. 'Тогда вы узнаете, является ли проблема ограниченной поддержкой файла и pygame. – pmoleri

+0

Код всегда полезен;) Я сделал это с mp3-файлом некоторое время назад, у меня нет реализации под рукой, хотя в противном случае я бы привел вам пример. Мог бы написать это позже сегодня. Правильно ли указан путь к файлу mp3? – Cribber

ответ

0

Использование mp3-файлов для звука в Pygame не очень хорошо. Если вы хотите, чтобы фоновая музыка использовала бесплатный аудиоконвертер (Audacity, возможно?) И конвертировала этот музыкальный файл в файл OGG. Еще одна вещь, которую вам нужно учитывать, это то, что вы должны помнить, что этот звуковой файл находится в той же папке/каталоге, что и ваш сценарий Python/Pygame. Кроме того, вам не обязательно нужен канал для воспроизведения музыки.

beep1 = "beep1.wav" 
beep2 = "beep2.wav" 
beep3 = "beep3.wav" 
beep4 = "beep4.wav" 
beep_list = [beep1, beep2, beep3, beep4] 
beep = random.shuffle(beep_list) 
pygame.mixer.music.load((beep_list[1])) 
pygame.mixer.music.play() 

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

bgm = "backgroundmusic.ogg" 
pygame.mixer.music.load((bgm)) 
pygame.mixer.music.play() 

Примечание: .wav файлы рекомендуется для звуковых эффектов, потому что WAV файлы получить немного больше, когда его больше, чем на несколько секунд.