пайтон намертво зависает при попытках последовательного проигрывания музыки через discord.py
Мой бот проигрывает музыку после команды "играй х(порядковый номер песни)" Это работает. Но когда я пытался сделать так, чтобы он проигрывал несколько песен подряд с помощью той же команды, но указывая несколько песен он зависает примерно через минуту после начала проигрывания первой песни. В чём проблема?
Вот кусок кода
for i in range(len(a)-2):
vc.pause() vc.play(discord.FFmpegPCMAudio(executable="C:/FFmpeg/bin/ffmpeg.exe",source=music[int(a[i+1])-1]))
vc.source = discord.PCMVolumeTransformer(vc.source)
vc.source.volume = vm
while vc.is_playing():
time.sleep(1)
Ответы (1 шт):
Гайд по установке wavelink для discord.py
В консоли прописать pip install wavelink
Переходим на wavelink discord server https://discord.com/invite/RAKc3HF и скачиваем то, что указано на скриншоте.

Запускает файл wavelinked.exe, ждём загрузки файлов, они будут загружены в ту категорию, где сейчас находится исполняемый exe файл, заходим в неё.
Копируем файлы в папку с ботом. Скоро они нам пригодятся(application.yml, Lavalink.jar). Папку lavalink можно удалить.
Создаём новый ког для музыки.
Копируем код с гитхаба https://github.com/PythonistaGuild/Wavelink/blob/master/examples/advanced.py и вставляем его в новосозданный ког.
Заходим в файл application.yml, редактируем поля port и address. Вместо порта указываем любой открытый порт на пк, если же запуск происходит с удалённого сервера, то соответственно указываем порт удалённого сервера. С адресом точно так же, 127.0.0.1 это локальный сервер. Пароль менять на усмотрение, но я настоятельно рекомендую это сделать.
- Установим java для запуска lavalink сервера. Для этого перейдём на сайт https://www.oracle.com/java/technologies/javase-jdk16-downloads.html
Делаем всё как на скриншотах, скачиваем, а затем устанавливаем java. P.S. Чтобы проверить, установилась java или нет пропишем в консоли java -version.
- Создадим батник для запуска lavalink. Создаём текстовый документ, переименовываем его в node.bat, изменяем и пишем:
@echo off
title Lavalink
java -jar Lavalink.jar
- Заходим в новый ког, куда мы скопировали код из github, и изменяем данные в классе Music словаря nodes. host, port, rest_uri, password. Эти данные мы указывали ранее в файле application.yml.
Запускаем новосозданный батник, подключаем ког к боту, запускаем бота.
Вот и всё, после всех этих манипуляций музыка в боте должна заработать.



