我知道很多人已经问过如何在不和谐语音频道中播放youtube中的音乐,但我找不到任何关于在djs版本13.2.0上播放本地文件的信息!我尝试使用以下代码:
const { createReadStream } = require('fs');
const { join } = require('path');
const { createAudioResource, StreamType, createAudioPlayer, joinVoiceChannel } = require('@discordjs/voice');
joinVoiceChannel({
channelId: message.member.voice.channel.id,
guildId: message.guild.id,
adapterCreator: message.guild.voiceAdapterCreator
});
message.guild.me.voice.setRequestToSpeak(true);
let resource = createAudioResource(join(../music/audio.mp3, 'audio.mp3'));
const player = createAudioPlayer();
player.play(resource);
当我尝试val()
时-我的机器人加入频道(舞台频道)并说一切正常,但它没有播放任何内容!如何让我的机器人在舞台频道中播放本地音乐文件?
这里有2个问题。
首先,路径完全错误。它不是字符串,即使您尝试将其更改为字符串,它也将无效,因为第一个参数以audio. mp3
结尾,第二个参数是audio.mp3
。改用此路径:
let resource = createAudioResource(join('..', 'music', 'audio.mp3'));
其次,您在播放器中播放音频,但不是语音连接,您必须订阅音频播放器。
这应该是最终代码:
const player = createAudioPlayer()
joinVoiceChannel({
channelId: message.member.voice.channel.id,
guildId: message.guild.id,
adapterCreator: message.guild.voiceAdapterCreator
}).subscribe(player)
message.guild.me.voice.setRequestToSpeak(true);
let resource = createAudioResource(join('..', 'music', 'audio.mp3'));
player.play(resource)