我最近一直在开发一款新游戏,我终于完成了这款游戏,我在最后一段时间里添加了一些音乐,但后来我意识到声音质量很差,于是我试着把它做成不同的扩展和wav,mp3不工作,我尝试了OGG,它说它“加载失败了”。我需要帮助,要么修复OGG装载或修复劣质与wav和mp3。我在windows 10上加载音频文件:
intro_mp3 = mixer.Sound("audio/intro.ogg")
choosing_mp3 = mixer.Sound('audio/choosing.ogg')
battle_mp3 = mixer.Sound('audio/battle.ogg')
win_mp3 = mixer.Sound('audio/win.ogg')
lose_mp3 = mixer.Sound('audio/lose.ogg')在这里,我在if声明之外播放它:
if start_button.draw(screen):
sleep(0.2)
game_screen()
start_button.remove()
start.fill((0, 0, 0, 0))
intro = True
chosen_fighter = True
bool_appearer = True
print("START")
screen.blit(tutorial, (50, 0))
intro_mp3.play()请帮帮我!
发布于 2022-08-01 07:04:48
问题中提供的分析代码很少。
您将声音描述为“一遍又一遍地回响”,这使我相信您的代码正在反复要求pygame.mixer.Sound对象玩()声音,而无需等待声音的完成。也许每次循环执行时,它都会启动新的回放。也许这个设计并没有打算让这种情况发生。
调用.Sound.play()只启动回放,函数不阻塞,它几乎立即返回。
.Sound.play()调用返回正在播放声音的pygame.mixer.Channel对象。您的代码可以调用频道上的.get_busy()成员函数来查看声音是否仍在播放,而不是第二次播放。(虽然get_busy()在播放任何声音时返回true,但不只是特定的声音)。
显然,最好的修复是重新构造代码,所以声音回放只触发一次。
https://stackoverflow.com/questions/73144052
复制相似问题