Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Tkinter 버튼 클릭 시 소리 재생하는 방법

파이썬에는 다양한 애플리케이션 인터페이스와 구성 요소를 만드는 데 활용할 수 있는 내장 라이브러리와 모듈이 많습니다. 그중 Pygame은 비디오 게임과 음악 관련 기능을 설계·구현하는 데 널리 쓰이는 대표적인 모듈입니다. Pygame은 소리와 관련된 모든 작업을 처리할 수 있는 mixer(믹서) 모듈을 제공하며, music 서브모듈을 사용하면 mp3, ogg 등 다양한 형식의 사운드 파일을 손쉽게 스트리밍 방식으로 재생할 수 있습니다.

구현 순서

버튼을 클릭했을 때 소리가 재생되는 애플리케이션을 만들려면 다음 단계를 따르면 됩니다.

  • 로컬 환경에 Pygame이 설치되어 있는지 확인합니다. 설치되어 있지 않다면 pip install pygame 명령어로 간단히 설치할 수 있습니다.

  • pygame.mixer.init() 함수를 호출하여 Pygame의 mixer 모듈을 초기화합니다.

  • 음악을 재생하는 데 사용할 버튼 위젯을 생성합니다.

  • play_sound() 함수를 정의하고, pygame.mixer.music.load(파일경로)에 음악 파일의 위치를 지정하여 불러옵니다.

  • pygame.mixer.music.play()를 호출하여 음악을 재생합니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *
import pygame
from PIL import Image, ImageTk

# tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 설정
win.geometry("700x500")

# 배경 이미지 추가
bg = ImageTk.PhotoImage(file="music.jpg")

label = Label(win, image=bg)
label.place(x=0, y=0)

# pygame의 mixer 모듈 초기화
pygame.mixer.init()

# 음악을 재생하는 함수 정의
def play_sound():
    pygame.mixer.music.load("sample1.mp3")
    pygame.mixer.music.play()

# 버튼 위젯 추가
b1 = Button(win, text="Play Music", command=play_sound)
b1.pack(pady=60)

win.mainloop()

실행 결과

위 코드를 실행하면 버튼이 하나 배치된 창이 화면에 나타납니다. 이제 play_sound() 함수 안에 재생할 음악 파일의 경로를 지정하면, 버튼을 클릭할 때마다 해당 음악이 애플리케이션에서 재생됩니다.

파이썬 Tkinter 버튼 클릭 시 소리 재생하는 방법

참고 팁

재생 중인 음악을 멈추려면 pygame.mixer.music.stop() 함수를 호출하면 됩니다. 또한 볼륨을 조절하고 싶다면 0.0부터 1.0 사이의 값을 받는 pygame.mixer.music.set_volume(0.5)를 활용할 수 있으니, 상황에 맞게 함께 사용해 보시기 바랍니다.