discord.js在多台服务器上播放音频

问题描述 投票:1回答:1

我使用Node.js / ffmpeg为Discord.js制作了一个测试测试机器人,可以在Discord上的某个频道中播放广播电台,那里没有问题,但是我正在考虑如何将同一电台流式传输到多个电台服务器/频道有效。

例如,如果我正在“ Discord服务器一号”上播放它:

var voiceChannel = message.member.voiceChannel;
    voiceChannel.join().then(connection => {
    console.log("joined channel");
    const dispatcher = connection.playArbitraryInput('http://philae.shoutca.st:8950/live', { volume: 0.5 });

    dispatcher.on("end", end => {
      console.log("left channel");
      voiceChannel.leave();
     });
        }).catch(err => console.log(err)); 

但是,如果我想在我的机器人所属的另一台服务器上播放它,我是否需要再次创建音频流?

如果是这样的话。我的机器人必须为每个实例分别对流进行编码?

[我想知道是否有任何方法可以重用音频流并对其进行流式处理,因此,如果我的机器人在100个通道中,则它只有一个流实例和100个上载实例

我很高兴,但我可以编写一些伪代码来尝试帮助说明:

让我说我可以做这样的事情:

let cachedAudioStream = cacheArbitraryInput('http://philae.shoutca.st:8950/live', {});

然后是每个传出实例:

connection1.playArbitraryInput(cachedAudioStream, { volume: 0.5 });
connection2.playArbitraryInput(cachedAudioStream, { volume: 0.8 });
connection3.playArbitraryInput(cachedAudioStream, { volume: 1 });

依此类推

谢谢

node.js ffmpeg discord.js audio-streaming internet-radio
1个回答
0
投票

由于流是由Discord.js管理的(您仅提供一个链接,而Discord.js使用FFMPEG对其进行处理),因此,如果不修改Discord.js代码就无法做到这一点。

您的问题很重要,但我认为这是不可行的,至少在使用Discord.js的情况下。您仍然可以在他们的Github repository上打开问题来询问他们。

© www.soinside.com 2019 - 2024. All rights reserved.