簡體   English   中英

如何擺脫這個 ffmpeg?

[英]How to get rid of this ffmpeg?

我目前正在開發一個機器人。 它的 function 是加入語音頻道並與tts通話。

這是我迄今為止的嘗試:

try {
    const broadcast = client.voice.createBroadcast();
    var channelId = message.member.voice.channelID;
    var channel = client.channels.cache.get(channelId);
    channel.join().then(connection => {
        broadcast.play(discordTTS.getVoiceStream("Staline est né le : 18 Décembre 1878."));
        const dispatcher = connection.play(broadcast);
    });
    message.delete();
}
catch (e) {
    console.log(e);
}

這是我得到的錯誤:

events.js: 292
throw er; // Unhandled 'error' event
          ^

    Error: spawn ffmpeg ENOENT
at Process.ChildProcess._handle.onexit(internal / child_process.js: 269: 19)
at onErrorNT(internal / child_process.js: 465: 16)
at processTicksAndRejections(internal / process / task_queues.js: 80: 21)
Emitted 'error' event on ChildProcess instance at:
at Process.ChildProcess._handle.onexit(internal / child_process.js: 275: 12)
at onErrorNT(internal / child_process.js: 465: 16)
at processTicksAndRejections(internal / process / task_queues.js: 80: 21) {
    errno: -4058,
        code: 'ENOENT',
            syscall: 'spawn ffmpeg',
                path: 'ffmpeg',
                    spawnargs: [
                        '-i', '-',
                        '-analyzeduration', '0',
                        '-loglevel', '0',
                        '-f', 's16le',
                        '-ar', '48000',
                        '-ac', '2',
                        'pipe:1'
                    ]
}

我真的不明白,我從來沒有要求ffmpeg在這里

據我所知 /tts 是內部 Discord 的 function(不是 discord.js)。 Bot 無法加入並通過 tts 發言。 你可以做這樣的事情:

client.on('message', message => {
    message.channel.send(args, {
        tts: true
    });
});

無需加入語音頻道!

更新!

我沒有提到您正在使用“discord-tts”。 首先,您必須安裝所有需要的依賴項: @discordjs/opusffmpeg-static

然后試試你的代碼或這個:

if (msg.content==="say test 123") {
    const broadcast = bot.voice.createBroadcast();

    if (msg.member.voice.channel) {
        const connection = await msg.member.voice.channel.join();

        broadcast.play(discordTTS.getVoiceStream("test 123"));

        const dispatcher = connection.play(broadcast);

    } else {
        await msg.reply('You need to join a voice channel first!');
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM