Создание простого музыкального плеера на Python с использованием Tkinter и Pygame

Создание простого музыкального плеера на Python с использованием Tkinter и Pygame


Создание простого музыкального плеера на Python с использованием Tkinter и Pygame

В этой статье мы создадим простой музыкальный плеер с графическим интерфейсом на Python. Плеер будет поддерживать основные функции: выбор трека, воспроизведение, паузу и остановку. Для реализации используем библиотеки Tkinter (для интерфейса) и Pygame (для работы с аудио).


Шаг 1: Установка необходимых библиотек

Сначала установите Pygame через терминал:

pip install pygame

Tkinter входит в стандартную библиотеку Python, поэтому дополнительная установка не требуется.


Шаг 2: Импорт библиотек

Создайте файл music_player.py и добавьте импорты:

import tkinter as tk
from tkinter import filedialog
import pygame
from pygame import mixer

Шаг 3: Настройка окна приложения

Инициализируйте окно Tkinter и настройте Pygame:

# Инициализация окна
root = tk.Tk()
root.title("Simple Music Player")
root.geometry("400x150")

# Инициализация микшера Pygame
pygame.init()
mixer.init()

Шаг 4: Добавление элементов интерфейса

Создадим кнопки и поле для отображения выбранного трека:

# Поле для отображения текущего трека
current_track = tk.StringVar()
track_label = tk.Label(root, textvariable=current_track, width=50)
track_label.pack(pady=5)

# Функция для обновления названия трека
def update_track_label():
    track_label.config(text=current_track.get())

# Кнопки управления
button_frame = tk.Frame(root)
button_frame.pack(pady=10)

btn_open = tk.Button(button_frame, text="Open", command=lambda: open_file())
btn_play = tk.Button(button_frame, text="Play", command=lambda: play_music())
btn_pause = tk.Button(button_frame, text="Pause", command=lambda: pause_music())
btn_stop = tk.Button(button_frame, text="Stop", command=lambda: stop_music())

btn_open.grid(row=0, column=0, padx=5)
btn_play.grid(row=0, column=1, padx=5)
btn_pause.grid(row=0, column=2, padx=5)
btn_stop.grid(row=0, column=3, padx=5)

Шаг 5: Реализация функций плеера

Добавим логику для работы с аудио.

Открытие файла

def open_file():
    file = filedialog.askopenfilename(
        filetypes=[("Audio Files", "*.mp3 *.wav")]
    )
    if file:
        current_track.set(file.split("/")[-1])  # Показываем название файла
        mixer.music.load(file)

Воспроизведение

def play_music():
    if not mixer.music.get_busy():
        mixer.music.play()

Пауза

def pause_music():
    if mixer.music.get_busy():
        mixer.music.pause()

Остановка

def stop_music():
    mixer.music.stop()
    current_track.set("")

Шаг 6: Запуск приложения

Добавьте в конец файла:

root.mainloop()

Полный код

import tkinter as tk
from tkinter import filedialog
import pygame
from pygame import mixer

def open_file():
    file = filedialog.askopenfilename(filetypes=[("Audio Files", "*.mp3 *.wav")])
    if file:
        current_track.set(file.split("/")[-1])
        mixer.music.load(file)

def play_music():
    if not mixer.music.get_busy():
        mixer.music.play()

def pause_music():
    if mixer.music.get_busy():
        mixer.music.pause()

def stop_music():
    mixer.music.stop()
    current_track.set("")

# Инициализация окна
root = tk.Tk()
root.title("Simple Music Player")
root.geometry("400x150")

mixer.init()

# Элементы интерфейса
current_track = tk.StringVar()
track_label = tk.Label(root, textvariable=current_track, width=50)
track_label.pack(pady=5)

button_frame = tk.Frame(root)
button_frame.pack(pady=10)

btn_open = tk.Button(button_frame, text="Open", command=open_file)
btn_play = tk.Button(button_frame, text="Play", command=play_music)
btn_pause = tk.Button(button_frame, text="Pause", command=pause_music)
btn_stop = tk.Button(button_frame, text="Stop", command=stop_music)

btn_open.grid(row=0, column=0, padx=5)
btn_play.grid(row=0, column=1, padx=5)
btn_pause.grid(row=0, column=2, padx=5)
btn_stop.grid(row=0, column=3, padx=5)

root.mainloop()

Возможные улучшения:

  1. Добавьте ползунок для перемотки трека.
  2. Реализуйте плейлист с возможностью переключения треков.
  3. Добавьте регулировку громкости.
  4. Поддержку большего количества форматов (например, через библиотеку pydub).
  5. Провести рефакторинг кода, разделить функционал интерфейса и функционал плеера.
  6. Реализовать плеер для консоли.

Теперь у вас есть базовый музыкальный плеер! Запустите его и проверьте работу функций. Для более сложных проектов можно расширить функционал, используя документацию Tkinter и Pygame.