discord.js 在多个服务器上播放音频
discord.js playing audio on multiple servers
我使用 Node.js / ffmpeg 为 discord.js 制作了一个测试机器人,用于在不和谐的频道中播放广播电台,那里没有问题,但我在想它是怎么做的将同一个电台有效地流式传输到多个 servers/channels。
例如,如果我在 "Discord server one" 上播放:
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 });
等等
谢谢
由于流由Discord.js管理(你只给一个link,而Discord.js使用FFMPEG来处理它),你不能不修改Discord.js代码。
你的问题很相关,但我认为它不可行,至少如果你使用 Discord.js。您仍然可以在他们的 Github repository 上打开一个问题来询问他们。
discord.js 有一个 'Voice Broadcast' 用于无线电机器人之类的东西。是的,您确实必须将呼叫连接到广播,仅此而已。
我使用 Node.js / ffmpeg 为 discord.js 制作了一个测试机器人,用于在不和谐的频道中播放广播电台,那里没有问题,但我在想它是怎么做的将同一个电台有效地流式传输到多个 servers/channels。
例如,如果我在 "Discord server one" 上播放:
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 });
等等
谢谢
由于流由Discord.js管理(你只给一个link,而Discord.js使用FFMPEG来处理它),你不能不修改Discord.js代码。
你的问题很相关,但我认为它不可行,至少如果你使用 Discord.js。您仍然可以在他们的 Github repository 上打开一个问题来询问他们。
discord.js 有一个 'Voice Broadcast' 用于无线电机器人之类的东西。是的,您确实必须将呼叫连接到广播,仅此而已。