Example #1
0
        internal static async Task Start(IAudioClient Client)
        {
            Cancel = new CancellationTokenSource();

            while (!Cancel.IsCancellationRequested)
            {
                Duration       = default(TimeSpan);
                Time           = default(TimeSpan);
                TicksRemaining = long.MaxValue;

                try
                {
                    await Queue.Next(Cancel.Token);

                    if (SS == 0)
                    {
                        Formatting.Update($"Now playing {Queue.Playing.Title}");
                        Bot.Client.SetGameAsync(Queue.Playing.Title);
                    }

                    Skip = new CancellationTokenSource();

                    await Client.SetSpeakingAsync(true);

                    using (var Out = Client.CreateDirectPCMStream(AudioApplication.Music, 128 * 1024, Filter.Packets))
                        await StreamAsync(Out);

                    Queue.ResetPlaying();
                }
                catch (Exception Ex)
                {
                    Logger.Log(Ex);
                }
            }
        }