微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Pygame.mixer.music 一次播放两首歌曲?

如何解决如何使用 Pygame.mixer.music 一次播放两首歌曲?

我必须制作一个可以同时播放两首歌曲的播放器。 问题是我能找到的唯一支持我需要使用的每种声音处理方法的模块是 Pygame.mixer.music。不幸的是,它一次只支持一个音乐流。

我试图使用线程和多处理来欺骗系统,但它没有成功。

我的问题是有人知道可以同时播放 2 首歌曲的 python3 模块,并且有以下可能性:暂停、停止、搜索歌曲、改变音量和改变歌曲的速度。 或者有人知道如何使用 Pygame 模块做到这一点。

我尝试使用的多处理代码如下,如果有人能帮忙解决这个问题,我将不胜感激!

import pygame
import multiprocessing

pygame.mixer.init()


def play(arg):
    pygame.mixer.init()
    if arg:
        print(arg)
        pygame.mixer.music.load('song1.ogg')
        pygame.mixer.music.play()
    else:
        print(arg)
        pygame.mixer.music.load('song2.ogg')
        pygame.mixer.music.play()


p1 = multiprocessing.Process(target=play,args=(True,))
p2 = multiprocessing.Process(target=play,args=(False,))
p1.start()
p2.start()

while True:
    pass

解决方法

您不需要任何线程或多处理。您可以使用 pygame.mixer.Sound 对象并行播放 2 首歌曲:

import pygame

pygame.mixer.init()
song_1 = pygame.mixer.Sound('song1.ogg')
song_2 = pygame.mixer.Sound('song2.ogg')
song_1.play(0)
song_2.play(0)

while pygame.mixer.get_busy():
    pygame.time.delay(10)
,

我找到了完成工作的方法。 目前我正在使用 2 个声音处理模块:

  • Pygame.mixer.music
  • python-vlc

它们一起正常工作并具有我需要的功能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。