Python Discord Bot, размещенный на Heroku, не воспроизводит звук - PullRequest
0 голосов
/ 06 августа 2020

Я собираю что-то вроде musi c бота, и я решил разместить его на heroku. К сожалению, это не работает должным образом. Все работает нормально, бот подключается к голосовому каналу, но я не слышу звука от бота. Вчера у меня было сообщение об ошибке (логи от heroku):

2020-08-06T15:13:45.003027+00:00 app[worker.1]: Ignoring exception in on_ready
2020-08-06T15:13:45.004547+00:00 app[worker.1]: Traceback (most recent call last):
2020-08-06T15:13:45.004619+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.8/site-packages/discord/client.py", line 312, in _run_event
2020-08-06T15:13:45.004620+00:00 app[worker.1]:     await coro(*args, **kwargs)
2020-08-06T15:13:45.004623+00:00 app[worker.1]:   File "papaj.py", line 58, in on_ready
2020-08-06T15:13:45.004624+00:00 app[worker.1]:     voice_client.play(discord.FFmpegPCMAudio(path), after=lambda x: endSong(guild, path))
2020-08-06T15:13:45.004641+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.8/site-packages/discord/voice_client.py", line 411, in play
2020-08-06T15:13:45.004642+00:00 app[worker.1]:     self.encoder = opus.Encoder()
2020-08-06T15:13:45.004644+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.8/site-packages/discord/opus.py", line 231, in __init__
2020-08-06T15:13:45.004644+00:00 app[worker.1]:     raise OpusNotLoaded()
2020-08-06T15:13:45.004672+00:00 app[worker.1]: discord.opus.OpusNotLoaded

Но сегодня я как-то исправил и не получаю сообщений об ошибках, , но звук от бота все еще не воспроизводится. Это выглядит так:

2020-08-06T15:27:50.232782+00:00 app[worker.1]: [youtube] 1dOt_VcbgyA: Downloading webpage
2020-08-06T15:27:50.736856+00:00 app[worker.1]: [download] Destination: Wykop - Barka (Electro Version)-1dOt_VcbgyA.webm
2020-08-06T15:27:50.875706+00:00 app[worker.1]: [ffmpeg] Destination: Wykop - Barka (Electro Version)-1dOt_VcbgyA.mp3
2020-08-06T15:27:57.656852+00:00 app[worker.1]: Deleting original file Wykop - Barka (Electro Version)-1dOt_VcbgyA.webm (pass -k to keep)

После этого просто останавливается. (Когда я запускаю его на своем компьютере, все работает нормально.)

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Вот как я решил это (когда я попытался запустить его на своем компьютере, я получил ошибку, но на Heroku он работает отлично).

Я добавил это в свой скрипт:

import ctypes
import ctypes.util
 
print("ctypes - Find opus:")
a = ctypes.util.find_library('opus')
print(a)
 
print("Discord - Load Opus:")
b = discord.opus.load_opus(a)
print(b)
 
print("Discord - Is loaded:")
c = discord.opus.is_loaded()
print(c)

Не забудьте поместить его перед тем, что связано со звуком (лучший вариант - вставить его в начало). Источник

0 голосов
/ 06 августа 2020

{ ссылка }

"Согласно документам discord.py он вам не понадобится в среде windows, возможно, поэтому он работал на вашем локальном компьютере, а не on heroku (на основе unix). "

...