【问题标题】:How do I repeat music using pygame.mixer?如何使用 pygame.mixer 重复音乐?
【发布时间】:2016-05-06 05:24:34
【问题描述】:

我创建了以下使用 pygame.mixer 播放 mp3 音乐的代码。但是,音乐不会重复。关于我如何制作它以使音乐重复的任何想法?代码如下:

playlist = list()
playlist.append ( "put music here.mp3" )
playlist.append ( "put music here.mp3" )

pygame.mixer.music.load ( playlist.pop() )  
pygame.mixer.music.queue ( playlist.pop() )
pygame.mixer.music.set_endevent ( pygame.USEREVENT )  
pygame.mixer.music.play()           

a = 0

running = True
while a == 0:
   while running:
      for event in pygame.event.get():
         if event.type == pygame.USEREVENT:    
            if len ( playlist ) >1:       
               pygame.mixer.music.queue ( playlist.pop() )`

【问题讨论】:

  • 可能是因为您将歌曲从播放列表中弹出,然后再也没有放回去

标签: python pygame


【解决方案1】:

根据pygame documentation,您可以传入-1pygame.mixer.music.play() 无限期地重复音乐。

【讨论】:

  • 我不确定你的意思,你能帮我写出那行代码吗,对不起,我是 python 社区的新手
  • @user5817193 你没有阅读文档吗? pygame.mixer.music.play(loops = -1)
【解决方案2】:
pygame.mixer.music.play(loops=-1)

给了我错误:

pygame.mixer.music.play(loops=-1)
TypeError: play() takes no keyword arguments

只是传递了数字:

pygame.mixer.music.play(-1)

希望它对某人有所帮助!

【讨论】:

    【解决方案3】:

    要播放音乐X 次使用,pygame.mixer.music.play(X),即:

    import pygame
    pygame.init()
    pygame.display.set_mode(pygame.display.list_modes()[-1]) # smallest resolution available
    pygame.mixer.init()
    pygame.mixer.music.load("test.wav")
    pygame.mixer.music.play(5) # repeat 5 times
    pygame.mixer.music.queue("test2.wav")   # queue test2.wav after test.wav plays 5 times
    clock = pygame.time.Clock()
    clock.tick(10)
    while pygame.mixer.music.get_busy():
        pygame.event.poll()
        clock.tick(10)
    

    PS:

    • 在创建display 后,我只有才能使用pygame 播放音乐。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多