0
3

More than 3 years have passed since last update.

pygameでタイマー機能を実装する

Last updated at Posted at 2020-01-31

はじめに

pygameというライブラリを用いて、
指定した時間が経過した後音楽を流すという、いわゆるタイマーのようなプログラムを作成としたとき、
エラーメッセージも表示されず、音楽も流れないという不具合が出た。
その解決法について書いていく。

環境

Python 3.6.8
pygame 1.9.6

結論

pygame.mixer.music.play() によって音楽が出力されるとき、
time.sleep()で音楽を再生する時間だけプログラムの実行に遅延を発生させることで音楽が流れるようになった。

作成したコード

問題が起きたコード

# 音楽を再生するプログラムを作成する

import pygame
import time

react_time = int(input("何秒後に音楽を鳴らすかセットしてください >>"))

print(react_time)
time.sleep(react_time)

pygame.mixer.init()
pygame.mixer.music.load("BGM.mp3")
pygame.mixer.music.play()

print("music play")

というコードを実行し、ターミナルで仮に3と入力するとき、

何秒後に音楽を鳴らすかセットしてください >>3
3
music play

という結果だけが出力され、音楽は流れない。

問題解決したコード

pygame.mixer.music.play()の次に、time.sleep()によって遅延を発生させることで、
音楽が流れるようになった。

import pygame
import time

react_time = int(input("何秒後に音楽を鳴らすかセットしてください >>"))

print(react_time)
time.sleep(react_time)

pygame.mixer.init()
pygame.mixer.music.load("BGM.mp3")
pygame.mixer.music.play()

time.sleep(10)  # time.sleep()で処理終了までの時間を確保する

print("music play")

参考

pythonのpygameで音が鳴らない
https://teratail.com/questions/173534

0
3
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3