首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在按空格键的同时播放音乐?

如何在按空格键的同时播放音乐?
EN

Stack Overflow用户
提问于 2019-03-18 02:57:02
回答 3查看 111关注 0票数 3

我想创建一个非常简单的应用程序,它在您按空格键的同时启动一首歌曲,但是当我启动该应用程序并按下空格键时,我只听到一个“爆裂”的声音,什么也没有启动。没有音乐。

代码如下:

代码语言:javascript
复制
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()
EN

回答 3

Stack Overflow用户

发布于 2019-03-18 04:08:10

好的,非常感谢你们!它现在可以完美地工作了。如果有人和我有同样的问题,下面是最终的代码:

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2019-03-18 03:41:53

我不知道为什么代码不能工作,但我知道如果您使用mp3文件,它可以工作。试试这个:

代码语言:javascript
复制
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 to .mp3 online

票数 0
EN

Stack Overflow用户

发布于 2019-03-18 03:45:20

我想你误解了pygame.event的用法。您应该尝试使用pygame.event.wait()

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55210759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档