Pygameを使用してMP3ファイルを再生する
import pygame
from tkinter import filedialog
import tkinter as tk
pygame.init()
# ウィンドウの設定
win = pygame.display.set_mode((500, 500))
pygame.display.set_caption("Pygame MP3 Player")
# ボタンの設定
play_button = pygame.Rect(50, 50, 50, 50)
pause_button = pygame.Rect(150, 50, 50, 50)
select_button = pygame.Rect(250, 50, 50, 50)
font = pygame.font.SysFont(None, 24)
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# 再生ボタンが押されたとき
if event.type == pygame.MOUSEBUTTONDOWN:
if play_button.collidepoint(event.pos):
pygame.mixer.music.unpause()
# 一時停止ボタンが押されたとき
if event.type == pygame.MOUSEBUTTONDOWN:
if pause_button.collidepoint(event.pos):
pygame.mixer.music.pause()
# ファイル選択ボタンが押されたとき
if event.type == pygame.MOUSEBUTTONDOWN:
if select_button.collidepoint(event.pos):
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
pygame.mixer.music.load(file_path)
pygame.mixer.music.play()
win.fill((255, 255, 255))
# ボタンの描画
pygame.draw.rect(win, (0, 255, 0), play_button)
pygame.draw.rect(win, (255, 0, 0), pause_button)
pygame.draw.rect(win, (0, 0, 255), select_button)
# ボタンにラベルを追加
play_text = font.render("Play", True, (0, 0, 0))
pause_text = font.render("Pause", True, (0, 0, 0))
select_text = font.render("Select", True, (0, 0, 0))
win.blit(play_text, (play_button.x + play_button.width / 2 - play_text.get_width() / 2,
play_button.y + play_button.height / 2 - play_text.get_height() / 2))
win.blit(pause_text, (pause_button.x + pause_button.width / 2 - pause_text.get_width() / 2,
pause_button.y + pause_button.height / 2 - pause_text.get_height() / 2))
win.blit(select_text, (select_button.x + select_button.width / 2 - select_text.get_width() / 2,
select_button.y + select_button.height / 2 - select_text.get_height() / 2))
pygame.display.update()
pygame.quit()
ちょっと、ひと休み。
生徒
教授?
これがMP3プレーヤーなのですか?
教授
ええ、Pygameを使っていますよ?
生徒
MP3以外は再生できないのですか?
教授
残念ながらできません。
まあ、サンプルコード的な感じで?
生徒
フォルダ内をランダム再生とかできたら面白そうですね。
教授
なるほど。
参考にしておきます(メモメモ)
生徒
冗談ですよ?
教授
悪質な冗談はやめてください。