Подходит ли этот код Python для воспроизведения плейлистов? [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подходит ли этот код Python для воспроизведения плейлистов? [закрыто]

Сообщение Anonymous »

Мне нужен плейлист из моего малинового пирога, но этот код не работает. Я хочу воспроизвести плейлист в начале определенного времени и сделать паузу в определенное время, а в другое время возобновить воспроизведение плейлиста. Этот файл Python работает с файлом XML.

Код: Выделить всё

import xml.etree.ElementTree as ET
import os
import pygame
from datetime import datetime, time
import logging
import glob
import threading
import time as tm

# Configuração do log
logging.basicConfig(filename='audio_player.log', level=logging.INFO, format='%(asctime)s - %(levelname)s: %(message)s')

# Caminho do arquivo XML
XML_FILE_PATH = '/home/pi/Desktop/tudo/musicas/horario171.xml'

# Variáveis globais para controlar a reprodução da música e a posição de reprodução
music_playing = False
current_position = 0

# Variável para controlar a execução da thread de música
running = True

def load_times_and_folder_from_xml(file_path):
try:
tree = ET.parse(file_path)
root = tree.getroot()
times = []

# Obtém o nome da pasta do XML
audio_folder_name = root.find('playlist').text.strip()

for tempo in root.findall('tempo'):
tempo_inicial = time.fromisoformat(tempo.find('tempoinicial').text)
tempo_final = time.fromisoformat(tempo.find('tempofinal').text)
times.append((tempo_inicial, tempo_final))

print("Tempo inicial:", tempo_inicial)
print("Tempo final:", tempo_final)

return times, audio_folder_name

except Exception as e:
logging.error("Erro ao carregar tempos do arquivo XML: %s", e)
raise

def play_audio(file_path):
global music_playing
try:
print("Reproduzindo música na pasta:", os.path.dirname(file_path))
pygame.mixer.music.load(file_path)
pygame.mixer.music.play(start=current_position)  # Inicia a reprodução a partir da posição atual
music_playing = True
except Exception as e:
logging.error("Erro ao reproduzir áudio: %s", e)
raise

def pause_audio():
global music_playing, current_position
if pygame.mixer.music.get_busy() and music_playing:
pygame.mixer.music.pause()
music_playing = False
current_position = pygame.mixer.music.get_pos() / 1000  # Armazena a posição de reprodução em segundos

def resume_audio():
global music_playing
if not pygame.mixer.music.get_busy() and not music_playing:
pygame.mixer.music.unpause()
music_playing = True

def play_music():
global current_position, running
times, audio_folder_name = load_times_and_folder_from_xml(XML_FILE_PATH)
AUDIO_FOLDER_PATH = os.path.join('/home/pi/Desktop/tudo/musicas/', audio_folder_name)
music_files = glob.glob(os.path.join(AUDIO_FOLDER_PATH, '*.mp3'))
for music_file in music_files:
logging.info("Reproduzindo música na pasta: %s", os.path.dirname(music_file))
play_audio(music_file)
# Aguarda até que a música termine de tocar
while pygame.mixer.music.get_busy():
tm.sleep(1)
if not running:
return

def check_and_play_music():
global running
while running:
agora = datetime.now().time()
print("Horário atual:", agora)
logging.info("Horário atual:  %s", agora)

times, _ = load_times_and_folder_from_xml(XML_FILE_PATH)

# Verifica se o horário atual está dentro de algum intervalo programado
for tempo_inicial, tempo_final in times:
if tempo_inicial 

Подробнее здесь: [url]https://stackoverflow.com/questions/78173046/is-this-python-code-right-to-play-playlists[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как связать видеокредиты из Wix CMS с проигрывателем плейлистов YouTube
    Anonymous » » в форуме CSS
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как связать видеокредиты из Wix CMS с проигрывателем плейлистов YouTube
    Anonymous » » в форуме CSS
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Время ответа на запросы плейлистов очень медленное, превышает 1 минуту (80 секунд).
    Anonymous » » в форуме JAVA
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • API данных Youtube — получение частных и частных плейлистов
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • API данных Youtube — получение частных и частных плейлистов
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»