【问题标题】:Can't get discord.js to play a song with ytdl-core无法让 discord.js 用 ytdl-core 播放歌曲
【发布时间】:2018-05-09 09:33:09
【问题描述】:

所以,我尝试用 discord.js 做一个 ytdl 的事情。我收到一个错误提示

(node:6796) UnhandledPromiseRejectionWarning: UnhandledPromiseRejection (rejection id: 1): TypeError: 参数“url”必须是字符串,而不是未定义”。

这是机器人应该玩的地方。 ((是的 ytdl 已定义))

const dispatcher = connection.playStream(ytdl(args[1]))
.on("end", () => { 
    console.log("song end");
})
.on("error", () => {
    console.error(error); 
});

【问题讨论】:

  • ytdl(args[1]) 的值是未定义的(正如错误告诉你的那样)。
  • args[1] 的值是多少?您能告诉我们您是如何构建args 对象的吗?

标签: javascript discord discord.js


【解决方案1】:

这实质上意味着“没有'url'或ytdl()的参数。你应该检查它是否为空。

【讨论】:

    【解决方案2】:

    尝试实现这个功能:

    function Play(connection, message)
    {
        var server = servers[message.guild.id];
        server.dispatcher = connection.playStream(YTDL(server.queue[0], {filter: "audioonly"}));
        server.queue.shift();
        server.dispatcher.on("end", function(){
            if(server.queue[0])
            {
                Play(connection, message);
            }
            else
            {
                connection.disconnect();
            }
        });
    
    }
    

    这实质上意味着当函数运行时,它会创建一个歌曲队列并按顺序播放它们。当没有剩余歌曲时,它将与语音通道断开连接。

    【讨论】:

    • 请注意,在使用此功能之前,您应该使用 server.queue.push(args) 其中 args 是 youtube 视频链接
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2021-12-06
    • 2018-04-02
    • 2018-04-13
    • 2021-04-28
    • 2021-04-04
    • 2017-02-09
    • 2021-08-17
    相关资源
    最近更新 更多