Add voice guide
This commit is contained in:
11
docs/guides/samples/audio_create_ffmpeg.cs
Normal file
11
docs/guides/samples/audio_create_ffmpeg.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
private Process CreateStream(string path)
|
||||
{
|
||||
var ffmpeg = new ProcessStartInfo
|
||||
{
|
||||
FileName = "ffmpeg",
|
||||
Arguments = $"-i {path} -ac 2 -f s16le -ar 48000 pipe:1",
|
||||
UseShellExecute = false,
|
||||
RedirectStandardOutput = true,
|
||||
};
|
||||
return Process.Start(ffmpeg);
|
||||
}
|
||||
9
docs/guides/samples/audio_ffmpeg.cs
Normal file
9
docs/guides/samples/audio_ffmpeg.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
private async Task SendAsync(IAudioClient client, string path)
|
||||
{
|
||||
// Create FFmpeg using the previous example
|
||||
var ffmpeg = CreateStream(path);
|
||||
var output = ffmpeg.StandardOutput.BaseStream;
|
||||
var discord = client.CreatePCMStream(1920);
|
||||
await output.CopyToAsync(discord);
|
||||
await discord.FlushAsync();
|
||||
}
|
||||
@@ -1,15 +1,10 @@
|
||||
// Create an IAudioClient, and store it for later use
|
||||
private IAudioClient _audio;
|
||||
|
||||
// Create a Join command, that will join the parameter or the user's current voice channel
|
||||
[Command("join")]
|
||||
public async Task JoinChannel(IUserMessage msg,
|
||||
IVoiceChannel channel = null)
|
||||
public async Task JoinChannel(IVoiceChannel channel = null)
|
||||
{
|
||||
// Get the audio channel
|
||||
channel = channel ?? (msg.Author as IGuildUser)?.VoiceChannel;
|
||||
if (channel == null) { await msg.Channel.SendMessageAsync("User must be in a voice channel, or a voice channel must be passed as an argument."); return; }
|
||||
|
||||
// Get the IAudioClient by calling the JoinAsync method
|
||||
_audio = await channel.JoinAsync();
|
||||
// For the next step with transmitting audio, you would want to pass this Audio Client in to a service.
|
||||
var audioClient = await channel.ConnectAsync();
|
||||
}
|
||||
Reference in New Issue
Block a user