1

我正在搜索,但找不到一个好的 python 模块,它允许我加载大量声音并在我想要的时间播放它们,其中一些一起播放。喜欢:我有 10 个 mp3 文件,其中一些是示例 dubstep 文件,所以我想用它们创作音乐。然后我需要快速加载它们,而不是每次我想播放时都按文件加载。所以我需要一个模块,它可以加载大量带有“for”条件的声音,然后为每个声音创建一个“对象”,然后随时播放。

谢谢你的帮助!

4

2 回答 2

0

您可以使用多平台的Snack Sound Toolkit

sound = Sound() 
sound.read('sound.mp3') 
sound.play()

然后根据用户输入使用不同的 .read() + .play() 组合。

于 2013-04-14T14:34:51.653 回答
0

我需要一个可以加载大量带有“for”条件的声音然后为每个声音创建一个“对象”的模块

正如@Aya 建议的那样,您可以使用pyglet(+ AVbinfor 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)。

于 2013-04-15T20:29:13.453 回答