discord. js проигрывание аудио на нескольких серверах - PullRequest
1 голос
/ 26 января 2020

Я сделал тестового тестового бота на разногласия. js, используя Node.js / ffmpeg, для воспроизведения радиостанции в канале на разногласиях, и там нет никаких проблем, однако я думал о том, как он будет передавать то же самое Эффективно подключайтесь к нескольким серверам / каналам.

Например, если я играю на «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)); 

Однако, если я хочу воспроизвести его на другом сервере, мой бот является членом, мне нужно снова создать аудиопоток?

Если это так, то вроде как sux. Мой бот должен был бы кодировать поток отдельно для каждого экземпляра?

Я хотел бы знать, если есть какой-нибудь способ, которым я могу повторно использовать аудиопоток и перезапустить его так, чтобы, если бы у меня был мой бот в 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 });

и т. Д.

Спасибо

1 Ответ

1 голос
/ 30 января 2020

Поскольку поток управляется Discord. js (вы даете только ссылку, а Discord. js использует FFMPEG для ее обработки), вы не сможете сделать это без изменения кода Discord. js.

Ваш вопрос актуален, но я не думаю, что это возможно, по крайней мере, если вы используете Discord. js. Вы все еще можете открыть вопрос в их Github репозитории , чтобы задать их.

...