Форум сайта python.su
Пишу бота на python, опыта разработки на этом ЯП почти минимально. Так вот, пишу музыкального дискорд бота чисто под свои нужды. В общем, по замыслу при вводе play (url) должна запускаться звук с видео с ютуба, с первым play проблем нет, можно стопить, ставить на паузу и тд, но со 2 *play возникают проблемы, песню невозможно стопить и производить с ней какие-либо действия, интерпретатор ссылался на то, что подпрограммы play, stop, resume находятся в главной подпрограмме play и при втором и более вызовах этой подпрограммы 2 раз инициализироваться эти же подпрограммы(play, stop и тд) не могут. Основная проблема в областях видимости, т.к одни подпрограммы находятся в другой, а по-другому нельзя, что делать? На скрине стрелкой показана главная подпрограмма.
vc = await bot.join_voice_channel(voice_channel) vc_clients[message.server.id] = [vc] @bot.command(pass_context=True) async def play(ctx, url): try: player = await vc.create_ytdl_player(url) player.start() @bot.command(pass_context=True) async def pause(): player.pause() await bot.say('Музыка на паузе') @bot.command(pass_context=True) async def stop(): player.stop() await bot.say('Музыка остановлена') @bot.command(pass_context=True) async def resume(): player.resume() except: pass
Отредактировано avelok (Июль 10, 2017 09:34:54)
Прикреплённый файлы: 14996301132620.png (19,2 KБ)
Офлайн