2013-04-14 1 views
1

검색하고 있었지만 좋은 파이썬 모듈을 찾을 수 없었습니다. 많은 사운드를로드하고 원하는 시간에 재생할 수있었습니다. 그 중 일부는 함께 사용되었습니다. 예 : 저는 10 mp3 파일과 비슷합니다. 그 중 일부는 샘플 덤프 파일이므로 일부 음악을 만들고 싶습니다. 그런 다음 파일을 빠르게로드해야하며 파일을 재생할 때마다 파일별로로드하지 않아야합니다. 따라서 'for'조건으로 많은 사운드를로드 한 다음 각 사운드에 대해 '객체'를 만든 다음 원하는 언제든지 재생할 수있는 모듈이 필요합니다.많은 mp3 파일을 재생하기위한 파이썬 모듈

도움 주셔서 감사합니다.

+0

한 번의 클릭으로 사운드 효과를 재생하는 것처럼 synth와 같은 프로그램이 이미 많이 있습니다. (예를 들어, Mac에서는 [GarageBand] (http://www.macworld.com/article/1136990/gbsoundeffects.html) – tehsockz

+0

아니요, 저는 이것을 재생할 수있는 하드웨어 인터페이스를하고 있기 때문에 필요합니다. sounds –

+0

소리 재생은 Python 코어 라이브러리의 범위를 벗어나므로 대답은 OS에 따라 다릅니다. 어떤 OS를 사용하고 있습니까? – Aya

답변

0

당신은 멀티 플랫폼입니다 Snack Sound Toolkit, 사용할 수 있습니다

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

가 그럼 그냥 사용자 입력을 기반으로() 콤보 다른 .read() + .play를 사용합니다.

+0

python 3.x에서 작동합니까? –

0

나는 각 당신이 pyglet (MP3에 대한 + AVbin)를 사용할 수

@Aya suggested으로 소리에 대한 '객체'를 만들려면 다음 조건 '에 대한'와 함께 소리를 많이 적재 할 수있는 모듈이 필요 병렬로 여러 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에서 작동합니다. 그것은 파이썬 2와 3을 모두 지원합니다 (pyglet 1.2).