Итак, я пытаюсь настроить музыкальную библиотеку, к которой я могу получить доступ через мой бот discord.js. В идеале я хочу передать плейлист / конкретную песню, все песни одного и того же жанра будут в одной папке, поэтому моя идея - сказать !play electronic
, и бот будет воспроизводить все файлы в определенной папке. Прежде чем перейти ко всей папке, я пытался получить один файл для потоковой передачи, и вот где я застрял. Я также не нашел способа для потоковой передачи самого аудиофайла, но я скорее загружаю его и сохраняю во временном mp3-файле. Я бы принял любые предложения о том, как передавать файл в потоковом режиме, а не загружать его, если это дает большие преимущества / его значительно проще кодировать, в противном случае, как его скачать и временно сохранить во время воспроизведения (имейте в виду, что хостинг-сервисЯ использую ограниченное доступное хранилище, поэтому загрузка всей папки не вариант), а также о том, как эффективнее подходить к загрузке / предварительной загрузке и организации очередей списка воспроизведения (всей музыкальной папки) для бота. ручей. Вот соответствующая часть моего кода, следуя документам API Google Диска о загрузках файлов :
if (message.member.voiceChannel) {
var temp = fs.createWriteStream('./tmpsong.mp3');
drive.files.get({
fileId: '1JTJ7W9C6NBBtjcLhD6P4G9YeXvPQxaBP',
alt: 'media'
}).on('end', function () {
console.log('Done');
}).on('error', function (err) {
console.log('Error during download', err);
}).pipe(temp).then(() => {
message.member.voiceChannel.join().then(connection => {
const dispatcher = connection.playFile('./tmpsong.mp3');
dispatcher.on("end", end => { message.member.voiceChannel.leave(); });
});
}).catch(err => console.log(err));
}
, и вот ошибка, которую я получаю:
An error occurred while running the command: TypeError: drive.files.get(...).on is not a function.
Я попытался удалить обе функции .on()
и оставить только .pipe(temp)
сразу после .get()
, но я получил ту же ошибку:
An error occurred while running the command: TypeError: drive.files.get(...).pipe is not a function.
Для пояснения, я уже знаю, как заставить бота присоединиться к голосовому каналу Discord и заставить его воспроизводить аудиофайл, мне просто нужно знать, как получить нужные мне файлы из Google Диска, и, если возможно, чтобудет лучшим подходом для системы очередей / списков воспроизведения.
Любой совет приветствуется, заранее спасибо.