Мне нужен плейлист из моего малинового пирога, но этот код не работает. Я хочу воспроизвести плейлист в начале определенного времени и сделать паузу в определенное время, а в другое время возобновить воспроизведение плейлиста. Этот файл 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]
Мне нужен плейлист из моего малинового пирога, но этот код не работает. Я хочу воспроизвести плейлист в начале определенного времени и сделать паузу в определенное время, а в другое время возобновить воспроизведение плейлиста. Этот файл Python работает с файлом XML. [code] 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))
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)
У меня возникли проблемы с интеграцией виджета «Проигрыватель плейлистов YouTube» с элементом «box» на моем сайте Wix, предназначенным для отображения титров видео, хранящихся в коллекции CMS под названием «playlist1014FULL_vr1». Хотя первый титр...
У меня возникли проблемы с интеграцией виджета «Проигрыватель плейлистов YouTube» с элементом «box» на моем сайте Wix, предназначенным для отображения титров видео, хранящихся в коллекции CMS под названием «playlist1014FULL_vr1». Хотя первый титр...
Вот мой код для загрузки элемента плейлиста YouTube. Это работает, и я могу получить результат.
private static final int MAX_RESULTS_PER_PAGE = 50;
public static List loadPlaylistItems(String playlistId) throws IOException {
List allItems = new...
В приложении Laravel я пытаюсь получить плейлисты, связанные с моим каналом YouTube.
Эти плейлисты могут быть общедоступными, частными или частными.
Я могу получить общедоступные плейлисты, но я изо всех сил пытаюсь получить частные и частные...
В приложении Laravel я пытаюсь получить плейлисты, связанные с моим каналом YouTube.
Эти плейлисты могут быть общедоступными, частными или частными.
Я могу получить общедоступные плейлисты, но я изо всех сил пытаюсь получить частные и частные...