如何在不中断或暂停python中其他代码的情况下随机播放音乐文件夹?

时间:2019-07-01 12:01:53

标签: python-3.x pygame macos-mojave

简而言之,我想在后台随机播放一个.mp3文件文件夹,以便仍然可以运行一个程序。我在Mac OS X上。我设法使用Glob来获取列表中的所有文件,然后可以使用playound插件found here.播放它们。但是,此脚本会阻止其他所有文件运行,直到所有歌曲完成不是我想要的。我尝试使用此代码来pygame ... pip install pygame(工作成功),然后...

import pygame
pygame.mixer.init()
pygame.mixer.music.load("file.mp3")
pygame.mixer.music.play()

但这总是返回相同的错误,pygame.error: MPEG file does not have any audio stream.因此,我将文件放在列表中,但无法在后台播放它们。有人可以帮忙吗?

更新代码:

我实际上设法用下面的代码播放声音了……

import time
import glob
import pygame

pygame.mixer.init()
def play_my_mix(data = "error"):
    for file in glob.glob("data/music/mix/*.mp3"):
        pygame.mixer.music.load(file)
        pygame.mixer.music.play()

print("test")
play_my_mix()
print("apple")
time.sleep(15)

但是音频质量很差。听起来有点扭曲和缓慢。 time.sleep(15)行可以使程序保持运行,因为否则它将停止,考虑到这是一个测试,所以可以。但是我确实将其更改为此...

x = 1
while x == 1:
    print("good")

万一这与时间有关,但根本没有改变。

1 个答案:

答案 0 :(得分:0)

所以我用编辑中提到的更新代码修复了第一部分。通过将pygame.mixer.init()更改为pygame.mixer.init(44100, -16, 2, 2048)

来解决的音频滞后的第二个问题