基本的に自分用のメモとして作成。
引き続きPythonの勉強中。
(前回→Pythonで月名を表示)
旦那に「いい課題ない?」と聞いたら「目覚まし時計とかは?」
と言われたので作った。
今回目覚まし時計の作成に ・pygame.mixer ・schedule ・time のモジュールを使用。
pygame.mixerとscheduleはないのでまずインストール。
これでインストールできた。
pip install pygame
pip install schedule
以下が作成したコード。
AlarmClock.py
import pygame.mixer
import schedule
import time
#アラーム処理
def Alarm():
print("時間です")
# print("\007") #ビープ音
Sound()
exit() #これがないと無限ループになるので注意
#音再生処理
def Sound():
pygame.mixer.init() #初期化
pygame.mixer.music.load('alerm1.mp3') #読み込み
pygame.mixer.music.play(-1) #ループ再生(引数を1にすると1回のみ再生)
input()
pygame.mixer.music.stop() #終了
#目覚まし設定時間取得
print("目覚ましをセットする時間を指定してください")
hour = input("時間(hour):")
minute = input("分(minute):")
target = f"{hour.zfill(2)}:{minute.zfill(2)}"
print(target+"にアラームをセットしました")
#アラーム時間設定
schedule.every().day.at(target).do(Alarm)
#アラーム待ち
while True:
schedule.run_pending()
time.sleep(1)
実行するとこんな感じ。
(入力 1回目:19 2回目:12)
pygame 1.9.5
Hello from the pygame community. https://www.pygame.org/contribute.html
目覚ましをセットする時間を指定してください
時間(hour):19
分(minute):12
19:12にアラームをセットしました
この場合19:12になれば「時間です」と表示され、alerm1.mp3が再生される。
何かキー入力すれば音を停止できるようにしてます。
以下の文章はpygameのモジュールをインポートすると出てくるみたい。
pygame 1.9.5
Hello from the pygame community. https://www.pygame.org/contribute.html
ちなみにコードについてだけど、コメントアウトしてる以下の部分は
print("\007")
ビープ音を鳴らす処理。
MP3再生処理が最初わからなかったので、とりあえずこれを入れてた。
今後もテストとかで使える気がするので、こういうものがあると忘れないようにコメントで残しておく。
他にもっといいやり方とかあるんだろうけど、今回これしかわからなかった。 あと今回scheduleは指定時間に実行として使ったけど、周期実行や指定曜日に実行とかもできるらしい。 色々使ってみて覚えていきたいね。
最後に雑談だけど、Qiitaって記事投稿したらしばらくは投稿できないんだね。知らなかった。