Бот Discord подключается к каналу, но не воспроизводит музыку

#discord #discord.js #audio-player

#Discord #discord.js #аудиоплеер

Вопрос:

Мой бот подключается к каналу с включенным микрофоном, он имеет право говорить на этом канале. Но в то же время он не транслирует видео с YouTube.

 import { AudioPlayer, AudioPlayerStatus, createAudioPlayer, createAudioResource, entersState, getVoiceConnection, StreamType } from "@discordjs/voice"; import { Guild, User } from "discord.js"; import { EventEmitter } from "events"; import * as YTDL from "ytdl-core"; import { PlayerOpts } from "../../../types"; import Queue from "./Queue";  export default class Player extends EventEmitter {  public hasMusicEnded: boolean;  public hasPlayerEnded: Boolean;  public queue: Queue;  private _audioPlayer: AudioPlayer;  private _opts: PlayerOpts;  private _waitingTimeLeaveTimeout: NodeJS.Timeout;    constructor(opts: PlayerOpts) {  super()   this._opts = opts;   this.queue = new Queue({ replay: false });  this.hasMusicEnded = true;  this.hasPlayerEnded = true;  }   public async playMusic(guild: Guild) {  this.hasPlayerEnded = false;  this.hasMusicEnded = false;   try {  const connection = getVoiceConnection(guild.id);  this._audioPlayer = await this._getSongPlayer(this.queue.getCurrentElement().link);  connection.subscribe(this._audioPlayer);  console.log(' ')   this.emit('start', this.queue.getCurrentElement());   this._audioPlayer.on(AudioPlayerStatus.Idle, () =gt; {  this.hasMusicEnded = true;   this.emit('finish');  this._handleSongFinish(guild);   if (this._waitingTimeLeaveTimeout) clearTimeout(this._waitingTimeLeaveTimeout);  this._waitingTimeLeaveTimeout = setTimeout(() =gt; (this._waitingTimeLeave(guild), this._opts.waitingTime));  });  } catch(err) {  this.emit('error', err);  }  }   private async _getSongPlayer(url: string) : Promiselt;AudioPlayergt; {  const player = createAudioPlayer();  const stream = YTDL(url, { filter: 'audioonly', highWaterMark: 1 lt;lt; 25 });  const resource = createAudioResource(stream, { inputType: StreamType.Arbitrary });   player.play(resource);   return entersState(player, AudioPlayerStatus.Playing, 5_000);  }   private _handleSongFinish(guild: Guild): void {  this.queue.queueShift();   if (this.queue.getCurrentElement()) this.playMusic(guild);  }  

Данные о видео с YouTube верны, из метода «_getSongPlayer» возвращается созданный аудиоплеер. Я подозреваю, что ошибка находится в очевидном месте, но уже второй день я не могу ее найти.