LINUX.ORG.RU

очереди воспроизведения в discord.py

 , , ,


0

1

Пилю бота для воспроизведения 30 гб треков на сервере, по команде + начало пригрывания, - стоп, skip следующий. Тут все ясно, вопрос вот в чем, воспроизведение происходит следующим образом через либу :

# подключение
channel = message.author.voice.channel
voice = await channel.connect()
# воспроизведение
voice.play(discord.FFmpegPCMAudio('test.mp3'))
не могу въехать как следить за воспроизведением по очереди

как вариант можно список треков запихать в список, а оттуда они уже будут упорядоченно извлекаться. И впилить try-except для отлавливания возможных ошибок.

zad1ra
()
Ответ на: комментарий от zad1ra

про список я понял, а как прогонять список и при случае выключения/скипанья это все грамотно отрабатывать?

noname_user ★★★
() автор топика
Ответ на: комментарий от noname_user

как-то так


for file in список_с_именами_файлов:
    try:
        код_открытия_file # не работал с аудиофайлами, так что не подскажу тут
    except:
        исключение_для_проблем_с_открытем_файла 
    твой_код

zad1ra
()
Ответ на: комментарий от noname_user

for будет ожидать завершения блока try-except, который в свою очередь ждёт завершения open-close. Ну, должнО так быть. К сожалению, с аудифайлами не работал, может там нюансы есть.

Или можно сделать костыль и из метаданный файла извлекать время проигрывания ))

zad1ra
()
Ответ на: комментарий от zad1ra

кароче в отдельном потоке чекаю играет ли что то и не было ли это остановлено руками, по типу

		while True:
			if not voice.is_playing() and not self._is_stop:
				self.play(message)
				break

noname_user ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.