首页 > 解决方案 > 获取歌曲队列 discord.js 的视频缩略图

问题描述

因此,每当播放新歌曲时,我都会尝试获取视频缩略图,因此当播放新歌曲并显示“正在播放:$ {song.title} ”时,它还会在标题旁边发送视频的缩略图但我不知道该怎么做有什么想法吗?

} else {
    serverQueue.songs.push(song)
    if(playlist) return undefined
    song.videoURL = 'the url for the thumbnail';
    return message.channel.send(`__**${song.title}**__ has been queued`)
}
return undefined
}

function play(guild, song) {
    const serverQueue = queue.get(guild.id)

    if(!song) {
        serverQueue.voiceChannel.leave()
        queue.delete(guild.id)
        return
    }

    const dispatcher = serverQueue.connection.play(ytdl(song.url))
    .on('finish', () => {
      serverQueue.songs.shift()
      play(guild, serverQueue.songs[0])
    })
    .on('error', error => {
        console.log(error)
    })
    dispatcher.setVolumeLogarithmic(serverQueue.volume / 5)

    let embed = new Discord.MessageEmbed()
    .setTitle(`Now Playing: __**${song.title}**__`)
    .setColor('#FF0000')
    serverQueue.textChannel.send(embed)
}

标签: javascriptdiscordbotsdiscord.js

解决方案


您可以尝试使用song.thumbnail. 如果您使用 ytdl,它将起作用:

} else {
    serverQueue.songs.push(song)
    if(playlist) return undefined
    song.videoURL = 'the url for the thumbnail';
    return message.channel.send(`__**${song.title}**__ has been queued`)
}
return undefined
}

function play(guild, song) {
    const serverQueue = queue.get(guild.id)

    if(!song) {
        serverQueue.voiceChannel.leave()
        queue.delete(guild.id)
        return
    }

    const dispatcher = serverQueue.connection.play(ytdl(song.url))
    .on('finish', () => {
      serverQueue.songs.shift()
      play(guild, serverQueue.songs[0])
    })
    .on('error', error => {
        console.log(error)
    })
    dispatcher.setVolumeLogarithmic(serverQueue.volume / 5)

    let embed = new Discord.MessageEmbed()
    .setTitle(`Now Playing: __**${song.title}**__`)
    .setImage(song.thumbnail)
    .setColor('#FF0000')
    serverQueue.textChannel.send(embed)
}

推荐阅读