Для чего стоит я вижу очень похожую проблему.Мой бот должен присоединиться к каналу, воспроизвести аудиоклип из сегмента S3 (который становится общедоступным), а затем уйти.Вот мой код:
async function executePlaySoundCommand(message, filePath) {
try {
const voiceChannel = message.member.voiceChannel;
const connection = await voiceChannel.join();
console.log(`filePath: ${filePath}`);
const file = `${process.env.S3_URL}/${filePath}`;
console.log(`file: ${file}`);
const dispatcher = await connection.playArbitraryInput(file);
console.log('Playback finished');
dispatcher.on('end', () => {
voiceChannel.leave();
});
} catch (err) {
console.log(err);
}
}
Локально бот присоединится к каналу, воспроизведет звук и уйдет, как и ожидалось.Однако в героку бот присоединится к каналу, после чего сразу же уйдет.Ниже приведены очищенные журналы от heroku:
Executing <command-name> command
filePath: <audio-file>.mp3
file: https://s3-eu-west-1.amazonaws.com/<s3-bucket-name>/<audio-file>.mp3
Playback finished
Я не думаю, что с моим кодом (?) Что-то не так, просматривая протоколы ffmpeg , чтобы увидеть, пропустил ли я что-то.