#python #pygame
#python #pygame
Вопрос:
Из pygame вообще нет звука. Я перепробовал много кодов, но работает только один, но я не хочу создавать новое окно.
Кто-нибудь знает, почему третий метод является единственным, который работает?
Это коды, которые я пробовал. :
import os
import pygame
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
os.chdir(sourceFileDir)
pygame.mixer.pre_init(24000, 16, 2, 4096)
pygame.init()
pygame.mixer.init()
person_sound = pygame.mixer.Sound("person.wav")
pygame.mixer.Sound.play(person_sound)
import os
import pygame
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
os.chdir(sourceFileDir)
pygame.mixer.pre_init(24000, 16, 2, 4096)
pygame.init()
pygame.mixer.init()
person_sound = pygame.mixer.Sound("person.wav")
play = person_sound.play()
while play.get_busy():
pygame.time.delay(100)
вот рабочий :
WAVFILE = 'person.wav'
import os
import pygame
import sys
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
os.chdir(sourceFileDir)
pygame.mixer.pre_init(24000, 16, 2, 4096)
pygame.init()
pygame.mixer.init()
screen=pygame.display.set_mode((400,400),0,32)
while True:
s = pygame.mixer.Sound(WAVFILE)
ch = s.play()
while ch.get_busy():
pygame.time.delay(100)
exit()
pygame.display.update()
Ответ №1:
Попробуйте удалить pygame.init()
из своего кода. Похоже, это противоречит pygame.mixer.init()
.
import os
import pygame
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
os.chdir(sourceFileDir)
pygame.mixer.pre_init(24000, 16, 2, 4096)
# Remove pygame.init()
# pygame.init()
pygame.mixer.init()
person_sound = pygame.mixer.Sound("person.wav")
s = pygame.mixer.Sound.play(person_sound)
# Also make sure to include this to make sure it doesn't quit immediately
while s.get_busy():
pygame.time.delay(100)
Протестировано на Windows 10, Pygame 1.9.5, Python 3.7.2