-
kivy 어플에 소리 넣기 (kivy SoundLoader)Programing/python 어플 개발 2022. 5. 6. 21:50반응형
지금까지 만든 알람 어플은 알람이라고 했지만 "Alarm"이라는 글자만 내부적으로 print할 뿐이였습니다.
이제는 우리의 귀로 소리를 들을 수 있도록 변형해보겠습니다.
19초짜리 알람음 mp3를 사용하겠습니다. (출처: https://studio.youtube.com/ 오디오보관함-음향효과)
main.py나 기타 파이썬 파일이 위치한 디렉토리에 다운로드 하시면 됩니다.
1. SoundLoader 사용해보기
kivy 어플리케이션에서 sound를 재생하는 가장 기본적인 방법은 다음과 같습니다.
(참조: https://kivy.org/doc/stable/api-kivy.core.audio.html)
sound.py
from kivy.app import App from kivy.core.audio import SoundLoader class Play(App): sound = SoundLoader.load('Digital Watch Alarm Long.mp3') sound.play() # Music().run() # sound.py만 실행시킬 경우, Music().run()의 주석을 해제하세요
sound.py를 실행시키면 mp3파일이 실행되는 것을 들으실 수 있습니다.
(공식문서에는 mp3 정보를 print하고, if문을 통해 mp3파일을 찾을 수 있는 경우에만 작동하도록 처리하고 있습니다만, 여기서는 정말 파일을 불러와서 재생만 하는 것에 집중했습니다.)
2. sound.py를 Class화 하기
위의 Music()을 그대로 import하면 import 하자마자 sound.play()가 실행될 것이기 때문에,
어플 화면을 키자마자 알람소리를 듣게하고싶은 것이 아니라면 클래스화 하는 것이 좋겠습니다.
sound.py
from kivy.app import App from kivy.core.audio import SoundLoader class Play(App): def beep(self): sound = SoundLoader.load('Digital Watch Alarm Long.mp3') sound.play()
3. timer.py에서 sound.py를 import 하기
이제 준비가 완료되었습니다.
이전 게시물에서 만들었던 알람 어플리케이션 코드에 sound 재생 기능을 추가해보겠습니다.
(이전 게시물을 참조해주세요)
timer.py에 단 두줄만 추가하면 마무리입니다.
from kivy.app import App from kivy.clock import Clock from datetime import datetime from sound import Play # New!!! class Alarm(App): def __init__(self, alarm_time, **kwargs): # 생략... # print alarm def alarm(self): print("Alarm!") Play().beep() # New!!!
# 참조) 현 디렉토리 구성 kivy_application ├─ main.py ├─ timer.py ├─ sound.py └─ Digital Watch Alarm Long.mp3
이제 main.py를 실행시키고 알람 시간을 설정하면....
시간에 맞춰서 알람소리가 잘 재생됩니다!
반응형'Programing > python 어플 개발' 카테고리의 다른 글
[streamlit] 원격VM으로 streamlit 앱 배포하기 (0) 2024.03.30 [streamlit] streamlit앱 배포하기 (1) 2024.03.26 Kivy 기능 분할하기 (split file & class) (0) 2022.05.05 kivyMD로 시계 위젯 띄우기(KivyMD TimePicker) (0) 2022.05.01 KivyMD를 이용해 Kivy 디자인을 더 쉽게 지정하기 (3) 2022.04.29