public bool ShouldInclude(MemoryStream stream, string track, string filter, out double duration) { if (string.IsNullOrWhiteSpace(filter)) { duration = 0; return(true); } var flag = filter.Split(Environment.NewLine) .Where(pattern => !string.IsNullOrWhiteSpace(pattern)) .Select(x => x.Trim()) .All(pattern => !Regex.Matches(track, pattern, RegexOptions.IgnoreCase).Any()); try { var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); var reader = new Mp3FileReader(stream.Reset(), builder); duration = reader.TotalTime.TotalSeconds; flag &= duration >= 30; } catch (Exception e) { _logger.LogError($"Stream with name '{track}' is not a valid mp3 file", e); flag = false; duration = 0; } return(flag); }
public MusicPlayer(Stream stream) { var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); _mp3FileReader = new Mp3FileReader(stream, builder); _waveOut = new WaveOut(); _waveOut.Init(_mp3FileReader); }
public Mp3FileReader(Stream inputStream, Mp3FileReader.FrameDecompressorBuilder frameDecompressorBuilder) { if (inputStream == null) { throw new ArgumentNullException("inputStream"); } try { this.mp3Stream = inputStream; this.id3v2Tag = Id3v2Tag.ReadTag(this.mp3Stream); this.dataStartPosition = this.mp3Stream.Position; Mp3Frame mp3Frame = Mp3Frame.LoadFromStream(this.mp3Stream); if (mp3Frame == null) { throw new InvalidDataException("Invalid MP3 file - no MP3 Frames Detected"); } double num = (double)mp3Frame.BitRate; this.xingHeader = XingHeader.LoadXingHeader(mp3Frame); if (this.xingHeader != null) { this.dataStartPosition = this.mp3Stream.Position; } Mp3Frame mp3Frame2 = Mp3Frame.LoadFromStream(this.mp3Stream); if (mp3Frame2 != null && (mp3Frame2.SampleRate != mp3Frame.SampleRate || mp3Frame2.ChannelMode != mp3Frame.ChannelMode)) { this.dataStartPosition = mp3Frame2.FileOffset; mp3Frame = mp3Frame2; } this.mp3DataLength = this.mp3Stream.Length - this.dataStartPosition; this.mp3Stream.Position = this.mp3Stream.Length - 128L; byte[] array = new byte[128]; this.mp3Stream.Read(array, 0, 128); if (array[0] == 84 && array[1] == 65 && array[2] == 71) { this.id3v1Tag = array; this.mp3DataLength -= 128L; } this.mp3Stream.Position = this.dataStartPosition; this.Mp3WaveFormat = new Mp3WaveFormat(mp3Frame.SampleRate, (mp3Frame.ChannelMode == ChannelMode.Mono) ? 1 : 2, mp3Frame.FrameLength, (int)num); this.CreateTableOfContents(); this.tocIndex = 0; num = (double)this.mp3DataLength * 8.0 / this.TotalSeconds(); this.mp3Stream.Position = this.dataStartPosition; this.Mp3WaveFormat = new Mp3WaveFormat(mp3Frame.SampleRate, (mp3Frame.ChannelMode == ChannelMode.Mono) ? 1 : 2, mp3Frame.FrameLength, (int)num); this.decompressor = frameDecompressorBuilder(this.Mp3WaveFormat); this.waveFormat = this.decompressor.OutputFormat; this.bytesPerSample = this.decompressor.OutputFormat.BitsPerSample / 8 * this.decompressor.OutputFormat.Channels; this.decompressBuffer = new byte[1152 * this.bytesPerSample * 2]; } catch (Exception) { if (this.ownInputStream) { inputStream.Dispose(); } throw; } }
public MusicPlayer(byte[] fileBytes) { var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); _stream = new MemoryStream(fileBytes); _mp3FileReader = new Mp3FileReader(_stream, builder); _waveOut = new WaveOut(); _waveOut.Init(_mp3FileReader); }
private static TimeSpan GetAudioFileLength(HttpPostedFileBase fileBase) { var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); using (var mp3Reader = new Mp3FileReader(fileBase.InputStream, builder)) { return(mp3Reader.TotalTime); } }
public void PlayAudio() { string fileName = "myMp3File.mp3"; var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); var reader = new Mp3FileReader(fileName, builder); // play or process the file, e.g.: _WaveOut.Init(reader); _WaveOut.Play(); }
public void Open() { stw = new Stopwatch(); var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); reader = new Mp3FileReader(Read(), builder); //reader = new Mp3FileReader(Read()); duration = 0; stw.Start(); }
public static Mp3FileReader GetMp3AudioFromURL(this string url) { Stream ms = new MemoryStream(); using (Stream stream = WebRequest.Create(url).GetResponse().GetResponseStream()) stream.CopyTo(ms); ms.Position = 0; var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); return(new Mp3FileReader(ms, builder)); }
public AudioPlayer(Resource resource, TabPage tab) { var soundData = (Sound)resource.Blocks[BlockType.DATA]; var stream = soundData.GetSoundStream(); waveOut = new WaveOutEvent(); try { if (soundData.Type == Sound.AudioFileType.WAV) { var rawSource = new WaveFileReader(stream); waveOut.Init(rawSource); } else if (soundData.Type == Sound.AudioFileType.MP3) { var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); var rawSource = new Mp3FileReader(stream, builder); waveOut.Init(rawSource); } else if (soundData.Type == Sound.AudioFileType.AAC) { var rawSource = new StreamMediaFoundationReader(stream); waveOut.Init(rawSource); } playButton = new Button(); playButton.Text = "Play"; playButton.TabIndex = 1; playButton.Size = new Size(100, 25); playButton.Click += PlayButton_Click; playButton.Disposed += PlayButton_Disposed; tab.Controls.Add(playButton); } catch (Exception e) { Console.Error.WriteLine(e); var msg = new Label { Text = $"NAudio Exception: {e.Message}", Dock = DockStyle.Fill, }; tab.Controls.Add(msg); } }
static void Main(string[] args) { Console.WriteLine("Hello World!"); var waveOut = new WaveOutEvent(); var file = @"untitled.mp3"; var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); var mp3Reader = new Mp3FileReader(file, builder); //BufferedWaveProvider buffer = new BufferedWaveProvider(WaveFormat.) waveOut.Init(mp3Reader); waveOut.Play(); Console.Read(); }
public Mp3FileReader(string mp3FileName, Mp3FileReader.FrameDecompressorBuilder frameDecompressorBuilder) : this(File.OpenRead(mp3FileName), frameDecompressorBuilder) { this.ownInputStream = true; }
private static Mp3FileReader GetMp3FileReaderFromFilePath(string filePath) { var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf)); return(new Mp3FileReader(filePath, builder)); }
public Mp3FileReader(Stream inputStream, Mp3FileReader.FrameDecompressorBuilder frameDecompressorBuilder) : this(inputStream, frameDecompressorBuilder, false) { }
public Mp3FileReader(string mp3FileName, Mp3FileReader.FrameDecompressorBuilder frameDecompressorBuilder) : this(File.OpenRead(mp3FileName), frameDecompressorBuilder, true) { }