亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Discord 機器人接收用戶的音頻

使用 Discord 機器人接收用戶的音頻

慕虎7371278 2023-09-07 14:39:11
我正在開發一個不和諧項目,在該項目中我需要錄制用戶聲音,我正在關注此文檔。到目前為止,這就是我寫的:const fs = require('fs');const Discord = require('discord.js');const client = new Discord.Client();client.once('ready', () => {    console.log('Ready!');});client.on('message', async message => {    if (message.content === 'a' && message.member.voice.channel) {        const connection = await message.member.voice.channel.join();        const audio = connection.receiver.createStream('user_id?', { mode: 'pcm' });        audio.pipe(fs.createWriteStream('user_audio'));    }});client.login('token');但問題是 user_audio 文件總是空的!
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

這是discord.js 中的一個錯誤,為了解決這個問題,我們需要播放音頻......


const fs = require('fs');

const Discord = require('discord.js');

const client = new Discord.Client();

const { Readable } = require('stream');


const SILENCE_FRAME = Buffer.from([0xF8, 0xFF, 0xFE]);


class Silence extends Readable {

  _read() {

    this.push(SILENCE_FRAME);

    this.destroy();

  }

}


client.once('ready', () => {

    console.log('Ready!');

});


client.on('message', async message => {

    if (message.content === 's' && message.member.voice.channel) {

        const connection = await message.member.voice.channel.join();

        const audio = connection.receiver.createStream(message, { mode: 'pcm', end: 'manual' });

        audio.pipe(fs.createWriteStream('user_audio'));


        connection.play(new Silence(), { type: 'opus' });

        console.log(message.member.user.id);

    }

});


client.login('token');


查看完整回答
反對 回復 2023-09-07
  • 1 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號