2016-08-24 6 views
1

코딩에 익숙하지 않고 학교 프로젝트 용 쥬크 상자를 만들려고 시도하고 있지만 볼륨을 편집 할 슬라이더를 만드는 데 어려움을 겪고 있습니다. 슬라이더를 움직일 때 실제로 볼륨을 변경하려면 어디에서 시작해야할지 모르겠습니다. VLC lib를 사용하고 있습니다.Tkinter를 사용하는 볼륨 슬라이더

import vlc 
import random 
from tkinter import * 
import threading 



song = "" 
instance = vlc.Instance() 

def get_songs(): 
    global song 
    global x 
    global songs 
    songs = filedialog.askopenfilenames() 
    x = 0 
    song = songs[x] 
    print(songs) 
    commence(song) 

def pause_resume(): 
    player.pause() 

def commence(song): 
    global player 
    global x 
    player = instance.media_player_new() 
    media = instance.media_new(song) 
    player.set_media(media) 
    player.play() 


def next_song(): 
    if x >= len(songs): 
     print("Error: Can't go any further") 
     x = 0 
     return 
    player.stop() 
    song = songs[x] 
    commence(song) 







window = Tk() 

window.geometry("600x600") 
window.title('JukeBox') 

#pause_button = Button(window, text = "Next", command = next_song) 
#pause_button.grid(row=1, column = 2) 
Button(window, text="Start", command=get_songs).grid(column=1,row=1) 
Button(window, text="Next", command=next_song).grid(column=1,row=2) 
pause_button = Button(window, text = "Pause/Resume", command = pause_resume) 
pause_button.grid(row=3, column = 1) 
menubar = Menu(window) 
filemenu = Menu(menubar, tearoff=0) 
filemenu.add_separator() 
filemenu.add_command(label="Open", command=get_songs()) 
filemenu.add_command(label="Exit", command=window.destroy) 
menubar.add_cascade(label="File", menu=filemenu) 
window.config(menu=menubar) 
vol = Scale(window,from_ = 0,to = 1,orient = HORIZONTAL ,resolution = .1,) 
vol.grid(row = 1, column = 2) 




window.mainloop() 

필자는 최선의 코딩 방법을 사용하지 않는다는 것을 알고 있지만, 필자가 작성한 것을 실제로 이해할 수 있습니다.

+0

흠. 아마도 [this] (http://www.python-course.eu/tkinter_sliders.php)가 도움이 될 수 있습니다. – Harrison

+0

그렇다면 슬라이더를 조금 더 이해하는 데 도움이되었지만 슬라이드를 움직일 때 볼륨을 변경하는 방법에 대해 더 많이 걱정 했나요? –

+0

'command' 옵션이 필요할 수도 있습니다. 다음은 간단한 예제입니다 (슬라이더를 움직일 때 스케일의 값을 얻는 것입니다) : http://pastebin.com/S292a2VL –

답변

0

설정 Scale 위젯을 만드는 command 매개 변수 :

def set_volume(v): 
    global vol 
    global player 
    # either get the new volume from given argument v (type: str): 
    # value = int(v) 
    # or get it directly from Scale widget (type: int) 
    value = vol.get() 
    player.audio_set_volume(value) 

vol = Scale(..., command=set_volume) 
+0

저는 이것을 시도했습니다. 하나의 인수가 있고 0이 필요합니다. 난 = vol.get() player.audio_set_volume (I) 권 = 스케일 (창 from_ = 0, =에 : 나는 반 데프 show_value() 볼륨을 업데이트 버튼을 사용하여 내 문제를 해결했습니다 100, orient = HORIZONTAL, resolution = 1) vol.grid (행 = 1, 열 = 2) vol_but = 버튼 (창, 텍스트 = '볼륨 업데이트', 명령 = show_value) vol_but.grid (행 = 2, column = 2) –

+0

@jordanCopezor 답변이 업데이트되었습니다. – acw1668

0

내 동료는 단순히 기능, 아니 그것이 도움이 이유 단서 덕분에 모든 사람의 요구 PARAMATERS에 자신을 추가하여이 좀 도와 수 있었다 노력해 주셔서 감사합니다.

def show_value(self): 
    global player 
    i = vol.get() 
    player.audio_set_volume(i) 

vol = Scale(window,from_ = 0,to = 100,orient = HORIZONTAL ,resolution = 1,command = show_value) 
    vol.place(x=75, y = 300) 
    vol.set(50) 
관련 문제