2013-06-25 3 views
2

파이 게임 믹서를 사용하여 오디오 파일을 열고 조작합니다. "Sound 객체"를 디스크의 로컬 파일에 저장하는 방법을 찾을 수 없습니다.파이 게임 믹서 오디오를 디스크에 저장 하시겠습니까?

sound_file = "output.mp3" 
    sound = pygame.mixer.Sound(sound_file) 

어떤 방법이 있습니까? 나는 파이 게임 믹서 문서를 연구 해왔지만 이것과 관련된 것을 찾을 수 없었다.

답변

2

귀하의 질문은 거의 2 살이지만, 경우에 사람들은 여전히 ​​대답을 찾고 다음 wave 모듈 (기본 파이썬)를 사용하여 당신 파이 게임 사운드 인스턴스 저장 . GitHub의에

# create a sound from NumPy array of file 
snd = pygame.mixer.Sound(my_sound_source) 

# open new wave file 
sfile = wave.open('pure_tone.wav', 'w') 

# set the parameters 
sfile.setframerate(SAMPLINGFREQ) 
sfile.setnchannels(NCHANNELS) 
sfile.setsampwidth(2) 

# write raw PyGame sound buffer to wave file 
sfile.writeframesraw(snd.get_buffer().raw) 

# close file 
sfile.close() 

정보와 예 더보기 : https://github.com/esdalmaijer/Save_PyGame_Sound.

0

나는 이것을 시도한 적이 없으므로 그것이 효과가있을 것이라고 추측합니다. pygame.mixer.Sound 객체에는 get_raw()이라는 함수가 있으며,이 함수는 Python 3.x에서 바이트 배열을 반환하고 Python 2.x에서는 문자열을 반환합니다. 나는 당신이 당신의 사운드를 저장하기 위해 그 바이트 배열을 사용할 수있을 것이라고 생각한다.

sound = pygame.mixer.Sound(sound_file) 
... # your code that manipulates the sound 
sound_raw = sound.get_raw() 
file = open("editedsound.mp3", "w") 
file.write(sound_raw) 
file.close() 
+0

아마도 mp3 파일 형식의 데이터를 덤프하지 않습니다. 그것이 wav 파일 일 수 있습니다. –

+0

이것은 작동하지 않습니다. 여기에 ipython 테스트에서 발췌 한 내용이 있습니다 : [23] : sound = pygame.mixer.Sound ('FishPolka.mid') [24] : sr = sound.get_raw() ------- -------------------------------------------------- ------------------ AttributeError Traceback (가장 최근의 마지막 통화) ()의 E : \ Documents and Settings \ Me \ Desktop \ AttributeError : '사운드'객체에 'get_raw'속성이 없습니다. [25] : sound.g sound.get_buffer sound.get_length sound.get_num_channels sound.get_volume –

0

이는 asnwer되지 않습니다 :

http://www.pygame.org/docs/ref/mixer.html#pygame.mixer.Sound.get_raw

는 나는 다음과 같이 보일 것 기대합니다. 내가 캐리지 리턴을 작동시키는 방법을 알아 내지 못하기 때문에 위에 쓴 코멘트가 불분명하기 때문에 코멘트입니다.

내 의견은 : 위의 해결책은 작동하지 않습니다.

다음은 ipython을 사용한 테스트에서 발췌 한 것입니다.

In [23]: sound = pygame.mixer.Sound('FishPolka.mid') 

In [24]: sr = sound.get_raw() 
--------------------------------------------------------------------------- 
AttributeError       Traceback (most recent call last) 

E:\Documents and Settings\Me\Desktop\<ipython console> in <module>() 

AttributeError: 'Sound' object has no attribute 'get_raw' 

In [25]: sound.g 
sound.get_buffer  sound.get_length  sound.get_num_channels sound.get_volume 
+0

어떤 버전의 파이 게임을 사용하고 있습니까? 필자가 구체적으로 링크 한 문서는 파이 게임 1.9.2에서 새 것임을 명확하게 명시하고있다. – Haz

+0

해명 해 주셔서 감사합니다. Haz. 좋은 소식이에요. 나는 [1]을 (를) 사용하고있었습니다 : import pygame [2]에서 : pygame.version.ver Out [2] : '1.9.1 릴리스' –

관련 문제