2017-07-22 7 views
0

Ich baue einen Bot für meinen Discord-Server, um die Audio-YouTube-Videos zu spielen, da ich keinen zuverlässigen Bot online gefunden habe.Discord bot verlässt den Sprachkanal sofort nach dem Beitritt

Der Bot verbindet sich mit meinem Sprachkanal, nachdem ich den! Play {url} -Befehl eingegeben habe, verlasse aber sofort, selbst wenn die URL gültig ist.

Mein Code ist unten:

[Command("play", RunMode = RunMode.Async)] 
public async Task play(string url) { 
    IVoiceChannel channel = (Context.User as IVoiceState).VoiceChannel; 
    IAudioClient client = await channel.ConnectAsync(); 

    var output = CreateStream(url).StandardOutput.BaseStream; 
    var stream = client.CreatePCMStream(AudioApplication.Music, 128 * 1024); 
    output.CopyToAsync(stream); 
    stream.FlushAsync().ConfigureAwait(false); 
} 

private Process CreateStream(string url) { 
    Process currentsong = new Process(); 

    currentsong.StartInfo = new ProcessStartInfo { 
     FileName = "cmd.exe", 
     Arguments = $"/C youtube-dl -o - {url} | ffmpeg -i pipe:0 -ac 2 -f s16le -ar 48000 pipe:1", 
     UseShellExecute = false, 
     RedirectStandardOutput = true, 
     CreateNoWindow = true 
    }; 

    currentsong.Start(); 
    return currentsong; 
} 

habe ich versucht, mit nur mit einer Datei auf meinem PC ffmpeg, die in hart codiert wurden, aber ich hatte das gleiche Ergebnis und die Bot verließ den Sprachkanal, sobald es ist verbunden.

Ich habe überprüft, dass sowohl ffmpeg als auch youtube-dl funktionierten, indem Sie die Befehle in einem cmd-Fenster ausführen und beide funktionierten einwandfrei.

Antwort

2

ffmpeg ist nicht die einzige Voraussetzung für Stimme. Sie benötigen die Sprachcodierungs- und Verschlüsselungsbibliotheken, die Discord verwendet. Ich schlage vor, dem Discord.Net-Kanal innerhalb des Discord-API-Servers beizutreten, wo wir immer zur Verfügung stehen, um Fragen wie diese zu beantworten, und wo wir jede Menge Ressourcen haben, zum Beispiel die Links zu den vorkompilierten Versionen dieser Bibliotheken .

https://discord.gg/discord-api Kanal # dotnet_discord-net

+0

Leider ist, vergaß ich zu erwähnen, dass ich die Bibliotheken haben! – Forb

Verwandte Themen