StringIO 버퍼를 되감기를 기억 했습니까?
나는 모든 단계를 거쳤으며 동일한 오류가 발생했습니다. 그런 다음 sourceforge (2006 년)에 RWops 라이브러리를 추적 했으므로이를 비난 할 준비가되었습니다.
다음 모듈 tempfile에있는 객체로 성공한 후 ByteIO를 모듈 IO에서 시도했습니다. 그들은 둘 다 일했으나 부하가 오기 전에 그들을 찾았다.
그래서 저는 StringIO로 돌아가서로드와 성공 전에 찾기 (0)를했습니다 !!
여기 midutil에서 샘플의 편집과 농축 수정의 :
from midiutil.MidiFile import MIDIFile
from StringIO import StringIO
# CREATE MEMORY FILE
memFile = StringIO()
MyMIDI = MIDIFile(1)
track = 0
time = 0
channel = 0
pitch = 60
duration = 1
volume = 100
MyMIDI.addTrackName(track,time,"Sample Track")
MyMIDI.addTempo(track,time,120)
# WRITE A SCALE
MyMIDI.addNote(track,channel,pitch,time,duration,volume)
for notestep in [2,2,1,2,2,2,1]:
time += duration
pitch += notestep
MyMIDI.addNote(track,channel,pitch,time,duration,volume)
MyMIDI.writeFile(memFile)
# PLAYBACK
import pygame
import pygame.mixer
from time import sleep
pygame.init()
pygame.mixer.init()
memFile.seek(0) # THIS IS CRITICAL, OTHERWISE YOU GET THAT ERROR!
pygame.mixer.music.load(memFile)
pygame.mixer.music.play()
while pygame.mixer.music.get_busy():
sleep(1)
print "Done!"
놀라운 친구, 나는 이미 잃어버린 원인이었다 생각했다. 누군가 당신이 파일을 재생하기 위해 파일을 되 감을 필요가 있다고 말하면 나는 그 사람이 미쳤다고 생각할 것입니다. 그러나 그럼에도 불구하고 그것은 매력처럼 작동했습니다. –