public void Play(PlayWorkItem item) { SourceVoice.BufferEnd -= SourceVoiceOnBufferEnd; //current play meta data CurrentPlayWorkItem = item; Interlocked.Exchange(ref _currentBuffer, 0); SourceVoice.BufferEnd += SourceVoiceOnBufferEnd; PlayNextBuffer(); }
public SourceVoiceEx(SourceVoice sourceVoice, Guid id, WaveFormat waveFormat, int operationId) { SourceVoice = sourceVoice; Id = id; WaveFormat = waveFormat; _bufferSize = WaveFormat.ConvertLatencyToByteSize(8); OperationId = operationId; PreviousWorkItem = new PlayWorkItem { Pan = Double.MinValue, Pitch = Double.MinValue, Volume = Double.MinValue }; }