无法读取未定义的属性'play'



所以,我有这样的代码:

const voiceid = message.member.voice.channelID;
const channel = client.channels.cache.get(voiceid);
channel.join().then(connection => {
function loopa(connection) {
const dispatcher = connection.play('./audio/1.mp3');
dispatcher.on('finish', loopa(connection));
}
loopa(connection);
}).catch(e => {
console.error(e);
});

在第一次运行(播放音频(后,它不会循环,而是返回错误:

TypeError: Cannot read property 'play' of undefined
at StreamDispatcher.loopppp (E:discordbotindex.js:144:36)
at StreamDispatcher.emit (events.js:327:22)
at finishMaybe (_stream_writable.js:639:14)
at _stream_writable.js:616:5
at StreamDispatcher._final (E:discordbotnode_modulesdiscord.jssrcclientvoicedispatcherStreamDispatcher.js:248:5)
at callFinal (_stream_writable.js:609:10)
at processTicksAndRejections (internal/process/task_queues.js:84:21)

我尝试用 const 定义play内部的参数,但这不起作用。 编辑:谷歌没有多大帮助

嗯,两个连接变量之间可能存在冲突。试试这个:

channel.join().then(connection => {
function loopa(c) {
const dispatcher = c.play('./audio/1.mp3');
dispatcher.on('finish', loopa(c));
}
loopa(connection);
}).catch(e => {
console.error(e);
});

希望这有帮助。

最新更新