簡體   English   中英

使用pygame.mixer加載音頻

[英]Loading audio using pygame.mixer

我使用了以前的堆棧溢出文章來幫助我開發以下代碼:

import os
import pygame
from pygame import *
import sys

GAME_FOLDER = os.path.dirname(__file__)
IMG_FOLDER = os.path.join(GAME_FOLDER, "img")


from time import sleep
pygame.mixer.init()
pygame.mixer.music.load(os.path.join(IMG_FOLDER, 'Noota.mp3'))
print("p")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
    sleep(1)
print ("done")

而且雖然加載代碼時沒有顯示錯誤消息,但它不會播放音樂。 相反,我聽到的只是“滴答”聲(大約每秒一滴答聲)。 我想知道是否有人知道為什么會這樣,以及我如何解決它。

作為參考,我在mackintosh計算機上使用python 3,並且在使用媒體播放器加載時,音樂文件確實在計算機上播放。

謝謝!

首先,您可以嘗試將音頻文件加載為pygame.mixer.Sound並使用SoundName.play()來檢查它是否沒有被mixer.load()損壞(如果仍然發生),則可能是音頻文件有問題,請使用通用且最新的格式(如.ogg),使其適用於所有平台

同樣,由於sleep停止所有功能,因此time.sleep()可能會使聲音混亂,在這種情況下可能會停止聲音。 如果您嘗試使用聲音方法,請參見以下示例:

import os
import pygame
from pygame import *
import sys

GAME_FOLDER = os.path.dirname(__file__)
IMG_FOLDER = os.path.join(GAME_FOLDER, "img")


from time import sleep
noota = pygame.mixer.sound(os.path.join(IMG_FOLDER, 'Noota.mp3'))
print("p")
noota.play()
# Maybe the music is being cut off here v
while pygame.mixer.music.get_busy():
    sleep(1)
print ("done")

暫無
暫無

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

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