Музыка не играет с Pygame - PullRequest
       7

Музыка не играет с Pygame

3 голосов
/ 17 марта 2019

Мне нужна твоя помощь. (но, во-первых, я не англичанин, поэтому мой словарный запас может быть немного глупым, извиняюсь)

Итак, я хочу создать действительно простое приложение, которое запускает песню, пока вы нажимаете клавишу ПРОБЕЛ, но когда я запускаю приложение и нажимаю клавишу пробела, я просто слышу «попсовый» звук, и ничего не запускается. Нет музыки

Вот код:

import pygame
from pygame.locals import *

pygame.init()
backimage = pygame.display.set_mode((395, 702), RESIZABLE)
fond = pygame.image.load("background.jpg").convert()
backimage.blit(fond, (0,0))
pygame.display.flip()
pygame.mixer.pre_init(42000,-16,1,2048)
pygame.mixer.init()
musik = pygame.mixer.Sound(b'musik.wav')

continuer = 1
while continuer == 1:
    for event in pygame.event.get():
        if event.type == QUIT:
            continuer = 0

    for event in pygame.event.get():
        if event.type == KEYDOWN and event.key == K_SPACE:
            musik.play()

Я здесь, если вам нужны какие-либо разъяснения. Я искал везде, и я не нашел ничего, что может мне помочь.

Извините, если этот вопрос не задан должным образом, это моя первая тема здесь, поэтому я не знаю, как это работает.

Спасибо за вашу помощь, хорошего дня.

СЕРГЕЙ

Ответы [ 3 ]

1 голос
/ 17 марта 2019

Хорошо, спасибо большое, ребята!Теперь работает отлично.Вот окончательный код, если у кого-то такая же проблема, как и у меня:

import pygame

from pygame.locals import *

pygame.init()

backimage = pygame.display.set_mode((395, 702), RESIZABLE)
fond = pygame.image.load("background.jpg").convert()
backimage.blit(fond, (0,0))
pygame.display.flip()
pygame.mixer.init()
pygame.mixer.music.load(b'musik.mp3')
pygame.event.clear()

while True:

    event = pygame.event.wait()

    if event.type == QUIT:
        pygame.quit()
        sys.exit()

    elif event.type == KEYDOWN and event.key == K_SPACE:
        pygame.mixer.music.play()

    elif event.type == KEYUP and event.key == K_SPACE:
        pygame.mixer.music.stop()

До свидания, хорошего дня!

Sergeï

0 голосов
/ 17 марта 2019

Я думаю, что вы неправильно поняли использование для pygame.event. Вы должны попробовать с pygame.event.wait () :

pygame.event.clear()
while True:
    // wait until new event happens - blocking instruction
    event = pygame.event.wait()
    if event.type == QUIT:
        pygame.quit()
        sys.exit()
    elif event.type == KEYDOWN and event.key = K_SPACE:
        musik.play()

Лучший

0 голосов
/ 17 марта 2019

Я не знаю, почему код не работает, но я знаю, что он работает, если вы используете файл mp3. попробуйте это:

import pygame

from pygame.locals import *

pygame.init()

backimage = pygame.display.set_mode((395, 702), RESIZABLE)

fond = pygame.image.load("background.jpg").convert()

backimage.blit(fond, (0,0))

pygame.display.flip()

pygame.mixer.init()
pygame.mixer.music.load(b'musik.mp3')

continuer = 1

while continuer == 1:

    for event in pygame.event.get():
        if event.type == QUIT:
            continuer = 0

    for event in pygame.event.get():
        if event.type == KEYDOWN and event.key == K_SPACE:
            pygame.mixer.music.play()

Если вы хотите использовать файл .wav, вы можете найти .wav в .mp3 онлайн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...