簡體   English   中英

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

[英]How can I play two songs at once using Pygame.mixer.music?

我必須制作一個可以同時播放兩首歌曲的播放器。 問題是我能找到的唯一支持我需要使用的每種聲音處理方法的模塊是 Pygame.mixer.music。 不幸的是,它一次只支持單曲 stream。

我試圖使用線程和多處理來欺騙系統,但它沒有完成這項工作。

我的問題是有人知道一個 Python3 模塊,它可以一次播放 2 首歌曲,並且具有以下可能性:暫停、停止、搜索歌曲、改變音量和改變歌曲的速度。 或者有人知道如何使用 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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM