// 음악이 다 재생되면 호출되는 메소드 private void PlayBackStopped(object sender, StoppedEventArgs e) { if ((int)_reader.TotalTime.TotalSeconds <= (int)_reader.CurrentTime.TotalSeconds + 1) { PlayEnded?.Invoke(sender, e); } }
public BmpCustomSequencer() { dispatcher.MetaMessageDispatched += delegate(object sender, MetaMessageEventArgs e) { if (e.Message.MetaType == MetaType.EndOfTrack) { tracksPlayingCount--; if (tracksPlayingCount == 0) { Stop(); } } else { clock.Process(e.Message); } }; dispatcher.ChannelMessageDispatched += delegate(object sender, ChannelMessageEventArgs e) { stopper.Process(e.Message); }; clock.Tick += delegate(object sender, EventArgs e) { lock (lockObject) { if (!playing) { return; } foreach (IEnumerator <int> enumerator in enumerators) { enumerator.MoveNext(); } } if (tracksPlayingCount == 0) { PlayEnded?.Invoke(this, EventArgs.Empty); } }; }