【问题标题】:Play local music files using djs v13使用 djs v13 播放本地音乐文件
【发布时间】:2021-12-05 00:26:03
【问题描述】:

我知道很多人已经问过如何在 discord 语音频道中播放来自 youtube 的音乐,但我找不到任何关于在 djs 版本 13.2.0 上播放本地文件的信息! 我尝试使用此代码:

const { createReadStream } = require('fs');
const { join } = require('path');
const { createAudioResource, StreamType, createAudioPlayer, joinVoiceChannel } = require('@discordjs/voice'); 
joinVoiceChannel({
            channelId: message.member.voice.channel.id,
            guildId: message.guild.id,
            adapterCreator: message.guild.voiceAdapterCreator
        }); 
message.guild.me.voice.setRequestToSpeak(true);
let resource = createAudioResource(join(../music/audio.mp3, 'audio.mp3')); 
const player = createAudioPlayer(); 

player.play(resource);

当我尝试eval() 时 - 我的机器人加入频道(舞台频道)并说一切正常,但它没有播放任何东西!如何让我的机器人在舞台频道播放本地音乐文件?

【问题讨论】:

  • 不应该../music/audio.mp3 是字符串,试试createAudioResource(join('..', 'music', 'audio.mp3'));
  • @Elitezen 也不起作用,我尝试在控制台中记录每一步,它说一切正常,但我仍然听不到任何音乐播放

标签: javascript node.js discord discord.js bots


【解决方案1】:

这里有两个问题。

首先,路径完全错误。它不是字符串,即使您尝试将其更改为字符串,它也会无效,因为第一个参数以audio.mp3 结尾,第二个参数是audio.mp3。请改用此路径:

let resource = createAudioResource(join('..', 'music', 'audio.mp3')); 

其次,您在播放器中播放音频,而不是语音连接。您必须订阅音频播放器。

这应该是最终代码:

const player = createAudioPlayer()
joinVoiceChannel({
    channelId: message.member.voice.channel.id,
    guildId: message.guild.id,
    adapterCreator: message.guild.voiceAdapterCreator
}).subscribe(player)
message.guild.me.voice.setRequestToSpeak(true);
let resource = createAudioResource(join('..', 'music', 'audio.mp3'));

player.play(resource)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 2022-01-20
    • 2017-09-13
    • 2018-12-28
    相关资源
    最近更新 更多