【发布时间】:2022-01-21 13:30:40
【问题描述】:
您好,我正在尝试让机器人播放特定歌曲,然后我希望机器人离开频道并且我做到了,但问题是当机器人播放时其他人加入频道时重新开始播放歌曲
client.on('voiceStateUpdate', async (oldState, newState) => {
const channel = client.channels.cache.get('921118985876017217')
if (oldState.channel == null && newState.channel == channel) {
await new Promise(function (resolve , reject) {
resolve(
joinVoiceChannel({
channelId: channel.id,
guildId: newState.guild.id,
adapterCreator: newState.guild.voiceAdapterCreator
}))
let stream = ytdl('https://www.youtube.com/watch?v=TU1i6I1ms6s', {
filter: "audioonly",
fmt: "mp3",
encoderArgs: ['-af', 'bass=g=10'],
})
let secStream = ytdl('https://www.youtube.com/watch?v=wHqKkiHlvJc&list=RDwHqKkiHlvJc&start_radio=1', {
filter: "audioonly",
fmt: "mp3",
encoderArgs: ['-af', 'bass=g=10'],
})
const resource = createAudioResource(stream, {
inputType: StreamType.Arbitrary,
inlineVolume: true,
});
// resource.volume.setVolume(0.5);
const secReasorce = createAudioResource(secStream, {
inputType: StreamType.Arbitrary, /* StreamType.Arbitrary type of the song like mpe */
inlineVolume: true,
});
const player = createAudioPlayer();
player.play(resource)
const connection = getVoiceConnection(oldState.guild.id)
connection.subscribe(player)
player.on(AudioPlayerStatus.Idle, () =>setTimeout(() => {
try{
{player.play(secReasorce)}
}catch{
connection.destroy()
}
}, 3000))
player.on( AudioPlayerStatus.Playing , ()=>{
//I think there will be the solution but I don't know any functions does what I want
} )
})
【问题讨论】:
标签: javascript discord.js