
코딩 설명
라즈베리 파이에서 pygame 라이브러리로 *.mp3 파일을 재생해 본다.
한곡만 재생하면 심심할 듯하여 버튼을 누르면 재생되는 파일이 변경되도록 한다.
코드 작성
- 버튼 입력은 GPIO 2번이 수신한다.
- *.mp3 파일 재생을 위해 pygame.mixer.music 모듈을 사용한다.
- pygame.mixer.music.play(-1) 코드의 -1은 음악 무한 반복을 위함이다.
- 아래 코드는 0.5초 주기로 버튼이 눌렸는지 확인하기에 (나름 폴링 모드) 버튼을 0.5초 이상 누르고 있으면 깔끔하게 재생 곡이 바뀐다.
from time import sleep
from gpiozero import Button
import pygame.mixer
button = Button(2)
pygame.mixer.init()
songs = ['/usr/share/scratch/Media/Sounds/Vocals/Come-and-play.mp3',
'/usr/share/scratch/Media/Sounds/Vocals/Got-inspiration.mp3',
'/usr/share/scratch/Media/Sounds/Vocals/Oooo-badada.mp3',
'/usr/share/scratch/Media/Sounds/Vocals/Sing-me-a-song.mp3']
next_index = 0
print(next_index, songs[next_index])
pygame.mixer.music.load(songs[next_index])
pygame.mixer.music.play(-1)
while True:
if button.is_pressed:
print('pressed')
next_index = next_index + 1 if next_index < 3 else 0
print(next_index, songs[next_index])
pygame.mixer.music.stop()
pygame.mixer.music.load(songs[next_index])
pygame.mixer.music.play(-1)
sleep(0.5)