@anubis465

Как реализовать запись разговора в дискорд через своего бота?

Предложили мне недавно добавить функцию записи голосового канала, я начал, но потом понял, что не знаю как реализовать саму запись.

client.on('message', async message => {
    if(message.content == `${prefix}join`) {
	if (message.member.voice.channel) {
        const connection = await message.member.voice.channel.join();
        message.channel.bulkDelete(1)
        message.channel.send(`${message.author} ку, я тебя слушаю!`)
	}}
});

client.on('message', async message => {
    if(message.content == `${prefix}leave`) {
	if (message.member.voice.channel) {
        const connection = await message.member.voice.channel.leave();
        message.channel.bulkDelete(1)
        message.channel.send(`${message.author}, ну ладно, я пошёл(`)
	}}
});
  • Вопрос задан
  • 1242 просмотра
Решения вопроса 1
Alexandre888
@Alexandre888 Куратор тега Боты
Javascript-разработчик
1) подключим родной модуль файловой системы node (fs):

const fs = require('fs');

2) создадим читаемый поток s16le PCM audio:
const audio = await connection.receiver.createStream(user, { mode: 'pcm' });

3) запишем строку для создания файлов со звуками из голосового канала:
audio.pipe(fs.createWriteStream('audio')); 
/*
в папке с вашим ботом будут появляться закодированные файлы, со звуком
типа "PCM" и с названием "audio".
*/

обратите внимание: файлы не сохраняются в форматах типа .mp3 / .mp4, они сохраняются в виде закодированного набора символов - так называемых "сырых данных", которые вручную можно прослушать с помощью программного обеспечения Audacity:
прослушивание файлов в Audacity

File > Import > Raw Data, после чего, выбираете закодированный файл.

в качестве кодировки (encoding), выбираете Signed 16-bit PCM; в качестве порядка файлов (byte order) - Little-endian.

далее, 2 стерео-канала (2 Channels (Stereo)) и частоту дискретизации (sample rate) - 48000 Гц (Hz).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dinesh_Chugtai
Посмотри эту библиотеку, здесь реализовано получение аудио
https://discordjs.guide/voice/receiving-audio.html...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы