【问题标题】:discord.js bot playing audio without sounddiscord.js 机器人在没有声音的情况下播放音频
【发布时间】:2021-11-22 10:49:54
【问题描述】:

我正在使用 discord.js v13 并尝试使用 @discordjs/voice 播放音频文件。我的问题是机器人会正确地做所有事情,但是当指示声音来自机器人的绿色圆圈出现时,我什么也听不到。我认为这不是我的耳机的音频问题,因为我可以听到其他所有声音,包括其他不和谐的人。

这是我的代码:

const { getVoiceConnection, joinVoiceChannel, AudioPlayerStatus, createAudioResource, getNextResource, createAudioPlayer, NoSubscriberBehavior } = require('@discordjs/voice');

module.exports = {
    name: "play",
    category: "music",
    description: "plays audio",
    usage: "<id | mention>",
    run: async (client, message, args) => {
        
        const voiceChannel =  message.member.voice.channel;
        
        const connection = joinVoiceChannel({
            channelId: voiceChannel.id,
            guildId: message.guild.id,
            adapterCreator: message.guild.voiceAdapterCreator
        });
        
        const audioPlayer = createAudioPlayer();
        connection.subscribe(audioPlayer);
        audioPlayer.play(createAudioResource('./sound/audio.mp3'));
    }
}

感谢任何帮助。

【问题讨论】:

  • 尝试在audioPlayer.play(...)之前写console.log(createAudioResource('./sound/audio.mp3').readable),看看音频资源是否可以播放
  • 控制台在日志上显示为true
  • 嗯,试试createAudioResource(createReadStream('./sound/audio.mp3'), { inlineVolume: true })(带&,如果不工作,不带inlineVolume : true
  • 解决了这个问题,谢谢
  • 删除或添加 inlineVolume 会改变什么吗?

标签: javascript discord.js


【解决方案1】:

简单地编写createAudioResource('./sound/audio.mp3') 不是获取您拥有的mp3 文件的音频资源的正确语法,您唯一错过的是createReadStream(),它将在将其转换为音频资源之前创建一个可读流。很明显,只是改变

  audioPlayer.play(createAudioResource('./sound/audio.mp3'));

  audioPlayer.play(createAudioResource(createReadStream('./sound/audio.mp3')));

如果这仍然不能解决您的问题,可以尝试添加 inlineVolume 等选项作为第二个参数:

  audioPlayer.play(createAudioResource(createReadStream('./sound/audio.mp3')),
    { inlineVolume: true });

【讨论】:

    猜你喜欢
    • 2021-12-08
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 2016-11-23
    • 1970-01-01
    相关资源
    最近更新 更多