Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 13.01.2018
Сообщений: 62

discord.js записывающий бот

05.02.2020, 16:21. Показов 1924. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый вечерочек .

Пытаюсь создать дискорд-бота для своей гильдии. От бота требуеться слушать что говорят другие и воспроизводить это. Небольшими мучениями получился такой код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
const receiver = voiceConnection.createReceiver();
voiceConnection.on('speaking', (user, speaking) => {
    if (speaking) { 
        const audioStream = receiver.createOpusStream(client.user);
    const outputStream = fs.createWriteStream('test.opus');
        audioStream.pipe(outputStream); 
        console.log(user.username + " is speaking now");
 
    outputStream.on('error', function (err) {
    console.log(err);
    });
    }
});
Предполагаеться, что бот должен начать запись в файл "test.opus" как только кто-то, в голосовом канале, начинает говорить. Однако файл создается, но остается пустым (0 кб).

Как решить данную проблему? Заранее спасибо =)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2020, 16:21
Ответы с готовыми решениями:

Бот на discord.js
Столкнулся с проблемой. Не могу отправить сообщение в чат при запуске бота.

Бот Discord
Здравствуйте, захотел сделать так, чтобы мой бот имел команды администратора(банить, кикать, давать роли и тд.), даже нашел коды, но все...

Бот Discord. Почему у меня не отправляет в чат что человек зашел?
MrOnlineCoder, Привет не могу понять почему у меня не отправляет в чат что человек зашел client.on('message', message => { //новый...

4
81 / 40 / 22
Регистрация: 03.05.2013
Сообщений: 722
07.02.2020, 10:33
готовите строку которую надо записать далее средства node js
добавить новую информацию к файлу
JavaScript
1
2
3
4
5
6
try {
  fs.appendFileSync('test.txt', 'data to append');
  console.log('The "data to append" was appended to file!');
} catch (err) {
  /* Handle the error */
}
в идеале вам надо проверить есть ли файл вообще
JavaScript
1
2
    const stat = await fs.lstat('test.txt');
    console.log(stat.isFile());
после проверки если есть файл - работаем, если нет
создаём файл
JavaScript
1
2
3
4
5
6
fs.writeFile("test.txt", "Hey there!", function(err) {
    if(err) {
        return console.log(err);
    }
    console.log("The file was saved!");
});
лучше всё полностью реализовать async технологией
подробнее на https://nodejs.org/api/fs.html
0
1 / 1 / 0
Регистрация: 13.01.2018
Сообщений: 62
07.02.2020, 23:16  [ТС]
zasadadada, не совсем понял как из даного примера сделать запись потока (ReadStream).

JavaScript
1
2
3
4
const audioStream = receiver.createOpusStream(client.user);//возвращает ReadStream который надо записать.
const outputStream = fs.createWriteStream('test.opus');
audioStream.pipe(outputStream); 
fs.appendFileSync('test.opus', audioStream);
Попытался так, но записан лишь объект.
0
81 / 40 / 22
Регистрация: 03.05.2013
Сообщений: 722
08.02.2020, 00:34
понял, у вас аудио формат данных c кодеком опус, странно почему не получается записать в файл, в принципе всё тоже самое должно быть
вы пробуйте сохранить ту часть в которой данные, весь объект не надо
пример тут
https://github.com/Rantanen/no... Decoder.js
должно помочь
1
1 / 1 / 0
Регистрация: 13.01.2018
Сообщений: 62
22.02.2020, 14:28  [ТС]
zasadadada, спасибо за помощь, записать файл удалось. А теперь я бы хотел повысить немного сложность. Мне нужен бот-дразнилка который бы повторял за кем-то. Я попытался сделать так...

JavaScript
1
2
3
4
5
6
7
8
9
10
const broadcast = client.createVoiceBroadcast();
for (const connection of client.voiceConnections.values()) {
  connection.playBroadcast(broadcast);
}
voiceConnection.on('speaking', (user, speaking) => {
    if (speaking) {
        const audioStream = receiver.createOpusStream(user);
        broadcast.playOpusStream(audioStream);
}
}
...но зараза молчит до последнего, как на допросе. Как его заставить говорить? =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.02.2020, 14:28
Помогаю со студенческими работами здесь

Discord.js Чтобы бот не реагировал на условную команду "ban" отправленную от человека с ролью "участник"
Нужен код. Что бы бот не реагировал на условную команду "ban" отправленную от человека с ролью "учасник" и отсылал сообщения...

Присоединиться к определенному голосовому каналу и начать проигрывать там определенный mp3 файл
Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы бот присоединился к определенному голосовому каналу и начал проигрывать там...

Отвечать при наборе сообщения определёнными пользователями
Хочу, чтобы при наборе сообщения определёнными пользователями бот им отвечал. Что-то идёт не так :/ import discord from discord...

Discord bot на Discord.Net
Вот не как не могу понять где ошибка ? using System; using System.Threading.Tasks; using Discord; using Discord.WebSocket; ...

Простейший осцилограф, записывающий сигнал 220 V AC
Посвящается всем желающим. Предлагаю к рассмотрению и возможному использованию в мирных целях простейший осциллограф записывающий сигнал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru