2014-01-08 5 views
1

tksnack을 사용하여 실시간으로 재생되는 사운드로 이동하는 파형을 만들려고합니다. 나는 내가 원하는 것을 어느 정도 수행하는 예제 코드를 발견했다.tksnack- 파형 생성 시도 중

#! /usr/bin/env python 

from Tkinter import * 
from tkSnack import * 

root = Tkinter.Tk() 
initializeSnack(root) 
snd = Sound() 
def start(): 
    snd.record() 

c = SnackCanvas(height=500, width=1920, bg='white') 
c.pack() 
c.create_waveform(1,1,sound=snd,width=1920,height=500,pixelspersec=500) 

start() 
root.mainloop() 

그러나이 예제에서는 마이크에서 오디오를 가져 오지만 mp3로 지정하고 싶습니다. 이 일을 어떻게 하죠? snd.read (file)을 snd.record()로 대체하려고 시도했지만 작동하지 않았습니다.

답변

2

또한 snackogg 패키지를 사용할 수 있습니다 ... tksnack은 Linux에서 libsnack-alsa와 함께 작동합니다. 나는 snackogg로 잘 모릅니다.

예를 들어 트랙을 기록한 예 - 버튼을 사용자의 출처에 넣습니다.

#! /usr/bin/env python 

    from Tkinter import * 
    from tkSnack import * 

    root = Tkinter.Tk() 
    root.geometry("650x560+100+80") 
    initializeSnack(root) 
    snd = Sound() 

    def start(): 
     snd.record() 

    def stop(): 
     snd.stop() 

    def play(): 
     snd.play() 

    def save(): 
     file = root.tk.call('eval', 'snack::getSaveFile') 
     snd.write(file) 


    c = SnackCanvas(height=500, width=820, bg='white') 
    c.pack() 

    c.create_waveform(1,1,sound=snd,width=1920,height=500,pixelspersec=500) 

    record=Button(root,width=50,height=50,fg='red', bitmap='snackRecord',command=start).place(x=5,y=501) 
    stop=Button(root,width=50,height=50,fg='black', bitmap='snackStop',command=stop).place(x=60,y=501) 
    play=Button(root,width=50,height=50,fg='black', bitmap='snackPlay', command=play).place(x=115,y=501) 
    save=Button(root,width=5,height=3,fg='black', text='Save', command=save).place(x=170,y=501) 
    root.mainloop()