示例#1
0
 private void OnMixerInputEnded(object sender, SampleProviderEventArgs e)
 {
     if (((SoundSampleProvider)e.SampleProvider).Sound.Loop)
     {
         AddMixerInput(new SoundSampleProvider(((SoundSampleProvider)e.SampleProvider).Sound));
     }
 }
 private void OnMixerInputEnded(object sender, SampleProviderEventArgs e)
 {
     // check if there are any inputs left
     // OnMixerInputEnded gets invoked before the corresponding source is removed from the List so there should be exactly one source left
     if (mixer.MixerInputs.Count() == 1)
     {
         AllInputEnded?.Invoke(this, EventArgs.Empty);
     }
 }
示例#3
0
 private void Looper_MixerInputEnded(object sender, SampleProviderEventArgs e)
 {
     if (e.SampleProvider == sampleProvider1)
     {
         Logger.Log(Name + " - playback ended (reader1)");
         sampleProvider1 = null;
     }
     if (e.SampleProvider == sampleProvider2)
     {
         Logger.Log(Name + " - playback ended (reader2)");
         sampleProvider2 = null;
     }
 }
示例#4
0
        /// <summary>
        /// Fired when input has ended.  Allows restart of looped sounds.
        /// </summary>
        private void Mixer_MixerInputEnded(object sender, SampleProviderEventArgs e)
        {
            CachedSoundProvider provider = ((e.SampleProvider != null) && (e.SampleProvider is CachedSoundProvider)) ? (CachedSoundProvider)e.SampleProvider : null;

            if (provider == null)
            {
                return;
            }
            lock (_loops)
            {
                if (_loops.Contains(provider))
                {
                    provider.Reset();
                    AddMixerInput(provider);
                }
            }
        }
 private void Mixer_MixerInputEnded(object sender, SampleProviderEventArgs e)
 {
     if (!IsInPlay)
     {
         return;
     }
     if (e.SampleProvider is MainBGMSampleProvider)
     {
         mainAudioFile.Seek(0, System.IO.SeekOrigin.Begin);
         mixer.AddMixerInput(new MainBGMSampleProvider(mainAudioSample));
     }
     else if (e.SampleProvider is RightSESampleProvider)
     {
         LocateNewSE(true);
     }
     else
     {
         LocateNewSE(false);
     }
 }
示例#6
0
        private void MixerInputEnded(object sender, SampleProviderEventArgs e)
        {
            if (State == AudioTrackState.Stopped || _outputSample == null)
            {
                return;
            }

            //check if this is our sample
            if (e.SampleProvider.GetHashCode() == _outputSample.GetHashCode())
            {
                if (_timer != null)
                {
                    _timer.Dispose();
                }

                _currentStream.Dispose();

                State = AudioTrackState.Stopped;
            }
        }
示例#7
0
 private void OnMixerInputEnded(object sender, SampleProviderEventArgs e)
 {
     MixerInputsCount--;
     CheckPlayingState();
 }