我正在搜索,但找不到一个好的 python 模块,它允许我加载大量声音并在我想要的时间播放它们,其中一些一起播放。喜欢:我有 10 个 mp3 文件,其中一些是示例 dubstep 文件,所以我想用它们创作音乐。然后我需要快速加载它们,而不是每次我想播放时都按文件加载。所以我需要一个模块,它可以加载大量带有“for”条件的声音,然后为每个声音创建一个“对象”,然后随时播放。
谢谢你的帮助!
我正在搜索,但找不到一个好的 python 模块,它允许我加载大量声音并在我想要的时间播放它们,其中一些一起播放。喜欢:我有 10 个 mp3 文件,其中一些是示例 dubstep 文件,所以我想用它们创作音乐。然后我需要快速加载它们,而不是每次我想播放时都按文件加载。所以我需要一个模块,它可以加载大量带有“for”条件的声音,然后为每个声音创建一个“对象”,然后随时播放。
谢谢你的帮助!
您可以使用多平台的Snack Sound Toolkit:
sound = Sound()
sound.read('sound.mp3')
sound.play()
然后根据用户输入使用不同的 .read() + .play() 组合。
我需要一个可以加载大量带有“for”条件的声音然后为每个声音创建一个“对象”的模块
正如@Aya 建议的那样,您可以使用pyglet
(+ AVbin
for mp3) 并行播放多个 mp3 文件:
#!/usr/bin/env python3
import os
import random
from glob import glob
import pyglet
# load sounds
paths = glob(os.path.expanduser('~/Music/*.mp3'))
sounds = [pyglet.media.load(p, streaming=False) for p in paths]
# play them in parallel
for sound in sounds:
player = sound.play()
player.volume = random.random()
player.push_handlers(on_eos=lambda: print('done playing the sound'))
# exit in `delay` seconds
pyglet.clock.schedule_once(lambda dt: pyglet.app.exit(), delay=10)
# run event loop
pyglet.app.run()
它适用于 Windows、Mac OS X、Linux。它同时支持 Python 2 和 3 (pyglet 1.2)。