Пример #1
0
        /// <summary>
        ///     Asynchronously triggered when a track ends.
        /// </summary>
        /// <param name="eventArgs">the track event arguments</param>
        /// <returns>a task that represents the asynchronous operation</returns>
        public override async Task OnTrackEndAsync(TrackEndEventArgs eventArgs)
        {
            if (eventArgs.Reason == TrackEndReason.LoadFailed)
            {
                botResponse = "Load failed for song. Retrying.";
                Queue.Insert(0, TrackDecoder.DecodeTrack(eventArgs.TrackIdentifier));
                await SkipAsync();

                return;
            }
            Console.WriteLine($"Track end ran. Args: {eventArgs.Reason}");
            if (eventArgs.Reason != TrackEndReason.Replaced && Queue.IsEmpty)
            {
                DisconnectOnStop = false;
                await base.OnTrackEndAsync(eventArgs);
            }
            if (eventArgs.MayStartNext)
            {
                await SkipAsync();
            }
        }
Пример #2
0
 public void TestTrackDecoding(string base64)
 {
     // verify the header of the base64 encoded track
     TrackDecoder.DecodeTrack(base64, verify: true);
 }