Ses
Sese Giriş
Ses discord.js'da çok fazla şeyde kullanılır. Müzik botlarında, kayıtta ve ses aktarımı gibi alanlar buna örnek verilebilir. Discord.js'da bir VoiceConnection elde edebilmek için VoiceChannel'a bağlanmak gerekir.
Başlamadan önce aşağıdaki belirtilenlere sahip olduğunuzdan emin olmalısınız;
FFMPEG -
npm install ffmpeg-staticHerhangi bir opus kodlayıcı;
npm install @discordjs/opus(daha fazla performans)npm install opusscript
Tercih edilen ses motoru @discordjs/opus'tur, opusscript'den daha iyi ve stabil çalışır. Bu iki ses motoru bulunurken, discord.js öncelikli olarak @discordjs/opus'u seçecektir. Opusscript; Discord.js'nin kötü çalıştığı koşullarda kullanılabilecek alternatif bir ses motorudur.
Bir Ses Kanalına Katılırken
Aşağıdaki verilen örnek mesaja tepki verir ve herhangi bir hatayı yakalayarak gönderenin ses kanalına katılır. Böylece ses işlemleri yapmaya başlayacağın VoiceConnection'u elde etmene izin verir.
const Discord = require('discord.js');
const client = new Discord.Client();
client.login('token buraya gelmeli.);
client.on('message', async message => {
// Ses sadece sunucularda çalışır. Eğer bu bir DM üzerinden bize iletilirse
// bunu görmezden geliriz.
if (!message.guild) return;
if (message.content === '/katıl') {
// Üye sadece ses kanalındaysa, ses kanalına katılması için.
if (message.member.voice.channel) {
const connection = await message.member.voice.channel.join();
} else { // Eğer üye bir ses kanalında değilse, o üyeye cevap ver.
message.reply('Bir ses kanalına bağlanmalısın!');
}
}
});Bir Ses Kanalında Ses Eylemleri
Önceki örneğimizde bir ses kanalına nasıl bağlanabileceğimizi öğrendik. Artık bu bağlandığımız kanala bir ses gönderebiliriz. Bunun için aşağıda vereceğimiz örneği inceleyin.
Ses kanalında ses oynatma eylemi Ses oynatmanın en basit yolu yerel bir dosya içerisinden oynatabileceğiniz ses dosyalarıdır.
Bu durumda dispatcher bir StreamDispatcher'dir. Burada bu ses eyleminin ses seviyesini kontrol edebiliriz.
Bu eylemi ilk oynattığımızda da seçenekleri düzenleyebiliriz;
Ne oynatabilirim? Discord.js size bir çok şeyi yapmak için fırsat sunar, hayallerini kolla (ya da kodla) evlat!
V12'de yeni bir yenilik olan; FFMPEG'i atlayarak, OggOpus ve WebmOpus akışlarını çok daha iyi performansla oynatabilirsiniz. Fakat bunu yaparak artık sese sahip olamayacağınızı unutmamanız gerekir.
Oynatma türleri ve dahası için dokümantasyonu incelemeyi unutmayın. Geldiği yerde daha fazlası var :]
Ses Yayını Ses yayını, aynı sesi birden çok kanalda çalan "radyo" botları için çok kullanışlıdır. Bu, sesin yalnızca bir kez dönüştürüldüğü ve performans açısından daha fazla şey vadettiği anlamına geliyor.
Aşağıda verilen; broadcast, normal VoiceConnections ile kullandığınız aynı oynatma yöntemine sahip bir VoiceBroadcast örneğidir
Last updated
Was this helpful?