所以基本上我有this issue并得到了一个“解决方案”,但是它没有用,所以我找到了一个解决方法,那就是在代码中添加highWaterMark,这样流就可以保持打开状态更长或更长时间了,所以这是我的代码当前的样子
const dispatcher = serverQueue.connection.play(ytdl(song.url, {
filter:"audioonly",
highWaterMark: 1<<25 })
.on("finish", () => {
const shiffed = serverQueue.songs.shift();
if (serverQueue.loop === true) {
serverQueue.songs.push(shiffed);
};
play(guild, serverQueue.songs[0]);
})
.on("error", error => console.error(error)));
dispatcher.setVolume(serverQueue.volume / 100);
但是现在我的问题是这首歌会播放大约10秒钟然后停下来,我不知道为什么这会使我的问题更糟,因为对于我看到的每个使用此解决方案的人,它的效果都很好。请有人帮我解决我的问题,我得到了很多评论,但似乎没人愿意回答:/
答案 0 :(得分:0)
最近更新了ytdl,您应该尝试在项目中运行快速npm update
。
此外,我尝试了this module,但问题似乎对我而言已经消失了。您可能还想确保项目中同时包含ffmpeg
和ffmpeg-static
,我认为这可能有助于解决我的问题。
答案 1 :(得分:0)
您应该尝试安装Installation
部分here
答案 2 :(得分:0)
您可能想尝试将流的类型更改为opus:
serverQueue.connection.play(ytdl(song.url, { filter:"audioonly", type: 'opus' });