Загрузка...

Ffmpeg stream: write EPIPE

Thread in Node.js created by xyligan00 May 2, 2021. 180 views

  1. xyligan00
    xyligan00 Topic starter May 2, 2021 0 Jan 30, 2021
    Пишу бота на discord.js. При попытке проиграть песню бот вылетает из голосового канала с ошибкой ffmpeg stream: write EPIPE. С чем это может быть связано?

    Code
    play(guild, song) {
    return new Promise(async (resolve, reject) => {
    const serverQueue = await this.queue.get(guild.id);

    if (!song) {
    if (!serverQueue.songs) return;

    serverQueue.voiceChannel.leave();
    return this.queue.delete(guild.id);
    }

    const dispatcher = serverQueue.connection
    .play(ytdl(serverQueue.songs[0].url, { quality: 'highestaudio', filter: 'audioonly', highWaterMark: 1 << 25 }))
    .on("finish", () => {
    if (serverQueue.songs.length < 1) return this.emit('queueEnded', serverQueue);

    if (serverQueue.loop) {
    this.play(guild, serverQueue.songs[0]);

    resolve(this.emit('playingSong', serverQueue));
    } else if (serverQueue.queueLoop) {
    let lastsong = serverQueue.songs.shift();

    serverQueue.songs.push(lastsong);
    this.play(guild, serverQueue.songs[0]);

    resolve(this.emit('playingSong', serverQueue));
    } else {
    serverQueue.songs.shift();
    this.play(guild, serverQueue.songs[0]);

    if (serverQueue.songs.length < 1) {
    serverQueue.voiceChannel.leave();
    this.queue.delete(guild.id);

    resolve(this.emit('queueEnded', serverQueue));
    } else {
    resolve(this.emit('playingSong', serverQueue));
    }
    }
    })
    .on("error", error => {
    serverQueue.voiceChannel.leave();
    this.queue.delete(guild.id);
    resolve(this.emit('playerError', error));
    });
    dispatcher.setVolumeLogarithmic(serverQueue.volume);
    })
    }
     
  2. PEUCUK
    PEUCUK May 2, 2021 Начинать нужно сейчас.zelenka.guru/threads/2853731 20,042 May 20, 2020
    код накинь, мы не шерлоки
     
    1. xyligan00 Topic starter
      PEUCUK, добавил в тему.
    2. PEUCUK
      xyligan00,
      Code
      async play() // this is my function for playing music on the bot
      {
      if (this.queue.length === 0) return;
      if (!this.guild.me.voice || !this.guild.me.voice.channel) return;
      let connection = this.guild.me.voice.connection;
      if (!connection) return;
      if (connection.dispatcher) return;
      let track = this.queue[0];
      let channel = this.guild.channels.cache.get(track.channelID);
      switch (track.type)
      {
      //case "soundcloud" omitted
      case "youtube":
      {
      const video = ytdl(track.url, { highWaterMark: 5242880 });
      video.on("error", (err) => console.log(err));
      channel.send(`playing: **${track.name}** // requester: **${track.requester.tag}**`);
      let dispatcher = connection.play(video); // dispatcher will begin
      dispatcher.setVolume(this.volume);
      dispatcher.on("finish", () => this.finish()); // almost immediately the following will be called
      // fyi: there isn't anything special in the function called, just some code to shift the queue
      break;
      }
      }
      }
Loading...
Top