private void WriteFrame(FrameDecompressedEventArgs <Mp3Frame> e) { if (State != StreamRecorderStates.Recording) { return; } if (e.DecompressedDataLen <= 0) { return; } if (_mp3writer == null) { _mp3writer = new LameMP3FileWriter( _fileStream, e.DecompressedFormat, e.Frame.BitRate, new ID3TagData { Title = $"{e.StreamSource.DisplayName} ({DateTime.Now.ToString()})", Comment = e.StreamSource.StreamUrl } ); } _mp3writer.Write(e.DecompressedData, 0, e.DecompressedDataLen); }
protected void RaiseFrameDecompressed(TFrameType frame, WaveFormat frameFormat, WaveFormat decompressedFormat, byte[] decompressedData, int decompressedDataLen) { var args = new FrameDecompressedEventArgs <TFrameType> { StreamSource = CurrentStreamSource, Frame = frame, FrameFormat = frameFormat, DecompressedFormat = decompressedFormat, DecompressedData = decompressedData, DecompressedDataLen = decompressedDataLen }; if (_frameDecompressed != null) { _frameDecompressed(args); } if (BackFrames != null) { BackFrames.Enqueue(args); } }
public override void OnFrameDecompressed(FrameDecompressedEventArgs <Mp3Frame> e) { lock (_lck) { WriteFrame(e); } }
public abstract void OnFrameDecompressed(FrameDecompressedEventArgs <TFrameType> e);