public void Play() { if (state != SOUNDSTATE.STOPPED && state != SOUNDSTATE.FORMING && soundOut != null) { soundOut.Play(); state = SOUNDSTATE.PLAYING; } }
private void DonePlaying(object sender, PlaybackStoppedEventArgs e) { state = SOUNDSTATE.STOPPED; manualReset.Set(); if (compleated != null) { compleated.Invoke(Id); } }
public void Pause() { if (state != SOUNDSTATE.PAUSED && state != SOUNDSTATE.STOPPED && state != SOUNDSTATE.FORMING && soundOut != null) { soundOut.Pause(); state = SOUNDSTATE.PAUSED; } else if (state == SOUNDSTATE.PAUSED && state != SOUNDSTATE.STOPPED && state != SOUNDSTATE.FORMING && soundOut != null) { Play(); } }
public OrderSound(string message, float Depth, float Frequency, float Feedback, float WetDryMix, float ReverbTime, float HighFrequencyRTRatio) { Thread theRT = new Thread(delegate() { { m_AudioStream = new MemoryStream(); using (SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer()) { speechSynthesizer.SelectVoiceByHints(VoiceGender.Female, VoiceAge.Child); speechSynthesizer.Rate = Rate; speechSynthesizer.SetOutputToWaveStream(m_AudioStream); speechSynthesizer.SpeakCompleted += new EventHandler <SpeakCompletedEventArgs>(WriteCompleate); speechSynthesizer.SpeakAsync(message); state = SOUNDSTATE.FORMING; manualReset.WaitOne(); state = SOUNDSTATE.READY; m_AudioStream.Seek(0, SeekOrigin.Begin); flanger = new FlangerEffect(GetSoundSource(m_AudioStream)) { Depth = Depth, Frequency = Frequency, Feedback = Feedback, WetDryMix = WetDryMix }; rev = new DmoWavesReverbEffect(flanger.ToStereo()) { ReverbTime = ReverbTime, HighFrequencyRTRatio = HighFrequencyRTRatio }; rev.WriteToWaveStream(m_AudioStream2); soundOut = GetSoundOut(); soundOut.Initialize(GetSoundSource(m_AudioStream2)); soundOut.Volume = 1; soundOut.Stopped += DonePlaying; soundOut.Play(); state = SOUNDSTATE.PLAYING; manualReset.WaitOne(); } } }) { IsBackground = true }; theRT.Start(); }