簡體   English   中英

Pygame OGG 和音頻問題

[英]Pygame OGG and audio issues

我最近一直在做一個新游戲,我終於完成了它,我添加了一些音樂作為最后的潤色,但后來我意識到聲音質量很差,所以我試着把它做成不同的擴展和 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()

請幫忙!

問題中提供的分析代碼很少。

您將聲音描述為“一遍又一遍地回聲”,這讓我相信您的代碼反復詢問pygame.mixer.Sound object 播放()聲音,而無需等待聲音完成。 也許每次執行某個循環時它都會開始新的播放。 可能設計並不打算讓這種情況發生。

調用.Sound.play()只會開始播放,function 不會阻塞,它幾乎立即返回。

.Sound.play()調用返回正在播放聲音的pygame.mixer.Channel object。 您的代碼可以調用 Channel 上的.get_busy()成員 function 以查看聲音是否仍在播放,而不是再次播放。 (雖然get_busy()會在播放任何聲音時返回 true,而不僅僅是特定的聲音)。

顯然,最好的解決方法是重新構建代碼結構,以便只觸發一次聲音播放。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM