首页 > 解决方案 > 如何停止 ytdl 流?

问题描述

如果有人键入 -skip 或类似的东西,我该如何停止 ytdl 流?我像这样开始流:

search(searchfor, opts, function(err, results) {
    var rasss = results[0].link;
    const streamOptions = { seek: 0, volume: 1 };
    var voiceChannel = msg.member.voiceChannel;
    voiceChannel.join().then(connection => {
        const stream = ytdl(rasss, { filter : 'audioonly' });
        const dispatcher = connection.playStream(stream, streamOptions);

标签: javascriptdiscord.jsytdl

解决方案


你可以做

dispatcher.destroy()

要停止歌曲,您可以播放队列中的下一首歌曲。但是,要做到这一点,您需要在函数之外将 dispatcher 定义为 null,这样您就可以在任何地方使用 dispatcher 变量。

let dispatcher;

在实际定义调度程序时,

dispatcher = connection.playStream(strea, streamOptions); // remove the keyword "const"

推荐阅读