问题描述
我一直在尝试使用电子通过不和谐机器人播放声音。但是,我遇到了三个问题。
首先是我通常用来播放声音文件的代码虽然不和谐返回一个错误,指出我缺少 opus.node 和 opusscript。这不应该发生,因为我已经安装了 @discordjs/opus,并且在电子实例之外运行相同的代码可以正常工作。
message.member.voice.channel.join().then((connection) => {
const dispatcher = connection.play(ytdl("https://www.youtube.com/watch?v=ZlAU_w7-Xp8",{ quality: "highestaudio" }));
dispatcher.on("finish",() => {
console.log("Song is finished.");
});
});
为了解决这个错误,我安装了 opusscript。然而,这是第二个问题的来源。我能够运行声音 - 前 9 次。第九次之后,机器人发出以下错误:
(node:21064) UnhandledPromiseRejectionWarning: RangeError: offset is out of bounds
at Uint16Array.set (<anonymous>)
at OpusScript.encode (C:\Users\spiralio\Desktop\sb\node_modules\opusscript\index.js:67:16)
at Encoder._encode (C:\Users\spiralio\Desktop\sb\node_modules\prism-media\src\opus\Opus.js:60:25)
at Encoder._transform (C:\Users\spiralio\Desktop\sb\node_modules\prism-media\src\opus\Opus.js:157:30)
at Encoder.Transform._read (_stream_transform.js:191:10)
at Encoder.Transform._write (_stream_transform.js:179:12)
at doWrite (_stream_writable.js:403:12)
at writeOrBuffer (_stream_writable.js:387:5)
at Encoder.Writable.write (_stream_writable.js:318:11)
at VolumeTransformer.ondata (_stream_readable.js:716:22)
仅当我正在播放的声音文件与自身重叠 9 次时才会发生此错误。如果我让它在此错误播放之前完成,我可以继续播放声音就好了。但是,一旦错误播放,无论我等待多久,声音都不再播放。
我尝试的一个解决方案是让机器人在渲染器进程中运行,而不是在主进程中运行。但是,这提示我机器人无法从浏览器连接到语音通道的问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)