/// <summary> /// Disposes the object. /// </summary> public void Dispose() { if (_sourceVoice != null) { StreamingSourceVoiceListener.Default.Remove(_sourceVoice); _sourceVoice.Stop(SourceVoiceStopFlags.None, CSCore.XAudio2.XAudio2.CommitAll); } }
static void Main(string[] args) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = CodecFactory.SupportedFilesFilterEn; if (openFileDialog.ShowDialog() == DialogResult.OK) { using (var source = CodecFactory.Instance.GetCodec(openFileDialog.FileName)) { using (var xaudio2 = XAudio2.CreateXAudio2()) using (var masteringVoice = xaudio2.CreateMasteringVoice()) //ALWAYS create at least one masteringVoice. using (var streamingSourceVoice = new StreamingSourceVoice(xaudio2, source)) { StreamingSourceVoiceListener.Default.Add(streamingSourceVoice); //add the streamingSourceVoice to the default sourcevoicelistener which processes the data requests. streamingSourceVoice.Start(); Console.WriteLine("Press any key to exit."); Console.ReadKey(); StreamingSourceVoiceListener.Default.Remove(streamingSourceVoice); streamingSourceVoice.Stop(); } } } }
public void Stop() { if (_streamingSourceVoice != null) { StreamingSourceVoiceListener.Default.Remove(_streamingSourceVoice); _streamingSourceVoice.Stop(); _streamingSourceVoice.Dispose(); _streamingSourceVoice = null; } _playbackState = PlaybackState.Stopped; }
public void Stop() { if (_isPlaying) { StreamingSourceVoiceListener.Default.Remove(_streamingSourceVoice); _streamingSourceVoice.Stop(); _streamingSourceVoice.Dispose(); _masteringVoice.Dispose(); _waveSource.Dispose(); _isPlaying = false; } }