2017-12-29 47 views
1

"음악 허브"를 만들고 싶습니다. 모든 음악을 한 곳에 모아 노래 제목에 입력 한 다음 재생을 눌러야합니다. 나는 거의 그것을 달성했지만, 나는 tkinter에서 나의 입장에 대한 오류를 얻고있다.tkinter 및 pygame 항목에 문제가 발생했습니다.

from tkinter import * 
import time 
import pygame 
import tkinter 

root = Tk() 
f1 = tkinter.Frame(root, height=100, width=100) 
f1.pack() 
root.title("Test") 

e = Entry(f1) 
e.pack() 
e.focus_set() 

s = e.get() 

def song(): 
    pygame.init() 
    pygame.mixer.init() 
    pygame.mixer.music.load(s+".mp3") 
    pygame.mixer.music.play() 
def pause(): 
    pygame.mixer.music.pause() 
def resume(): 
    pygame.mixer.music.unpause() 



b = Button(f1, text="Play Song", command=song) 
b.pack(fill=tkinter.BOTH, expand=1) 

b2 = Button(f1, text="Pause", command=pause) 
b2.pack() 

b3 = Button(f1, text="Resume", command=resume) 
b3.pack() 

root.mainloop() 

I 오류 받고 있어요 : 여기에 내 코드입니다 "pygame.error을 '.MP3'를 열 수 없습니다", 즉 항목에서 입력이 처리되지 않는 것을 의미합니다 있도록. 모든 도움 감사 감사!

+0

'= (S)가 e.get()'항목 's' 전류 값을 할당하는 동작. 처음에는 아무것도 없습니다. – Nae

답변

3

해결 방법을 찾았습니다. e.get()을 변수로 사용하는 대신 파이 게임 (pygame) 문에 넣는다.

pygame.mixer.music.load(s+".mp3") 

pygame.mixer.music.load((e.get())+".mp3") 

변경하며

+0

버튼을 누를 때 ergo가 호출 될 때마다 항목 값을 가져 오는 '노래'메소드를 만들기 때문에 이것은 해결책입니다. 엔트리의 초기 값을 얻는 것과는 대조적입니다. – Nae

+0

당신은 그것을 대답으로 표시 할 수 있습니다 :) – furas