audio
July 11, 2023

Процент воспроизведения mp3

Подсчет производится отдельным процессом

import multiprocessing
import time
from playsound import playsound
from mutagen.mp3 import MP3


def process1():
    """Первый процесс"""
    print("Запущен первый процесс")
    from playsound import playsound
    playsound("C:\\Users\\user\\AppData\\Roaming\\JetBrains\\PyCharmCE2023.1\\scratches\\test.mp3")
    time.sleep(2)  # имитация некоторой работы
    print("Завершен первый процесс")


def process2():
    """Второй процесс"""
    print("Запущен второй процесс")
    # Отслеживаем прогресс воспроизведения
    filename = "test.mp3"

    audio = MP3(filename)
    duration = audio.info.length

    start_time = time.time()  # Запоминаем время начала воспроизведения

    while True:
        elapsed_time = time.time() - start_time
        progress = (elapsed_time / duration) * 100
        print(f"Прогресс воспроизведения: {progress:.2f}%")

        if elapsed_time >= duration:
            break

        time.sleep(0.1)

    print("Воспроизведение завершено")
    print("Завершен второй процесс")

if __name__ == '__main__':
    # Создание объектов Process для каждого процесса
    p1 = multiprocessing.Process(target=process1)
    p2 = multiprocessing.Process(target=process2)

    # Запуск процессов
    p1.start()
    p2.start()

    # Ожидание завершения процессов
    p1.join()
    p2.join()

    print("Оба процесса завершены")