public ID3Tags GetTags(RecordedSong song) { var tagFile = File.Create(new MemoryFileAbstraction(new MemoryStream(song.Data))); return new ID3Tags { Title = tagFile.Tag.Title, Artists = tagFile.Tag.Performers, Album = tagFile.Tag.Album, }; }
public bool WriteSong(RecordedSong song) { string filePath = Path.Combine(this._settings.OutputDirectory, $"{song.Song.Artist.ToValidFileName()} - {song.Song.Title.ToValidFileName()}.mp3"); if (this._settings.SkipExistingSongs && File.Exists(filePath)) return false; if (Directory.Exists(this._settings.OutputDirectory) == false) Directory.CreateDirectory(this._settings.OutputDirectory); File.WriteAllBytes(filePath, song.Data); return true; }
public void UpdateTags(ID3Tags tags, RecordedSong song) { using (var stream = new MemoryStream(song.Data.Length * 2)) { stream.Write(song.Data, 0, song.Data.Length); stream.Position = 0; var tagFile = File.Create(new MemoryFileAbstraction(stream)); tagFile.Tag.Title = tags.Title; tagFile.Tag.Performers = tags.Artists; tagFile.Tag.Album = tags.Album; tagFile.Save(); song.Data = stream.ToArray(); } }
public RecordedSong StopRecording() { this._capture.StopRecording(); this._capture.Dispose(); this._writer.Dispose(); var result = new RecordedSong { Song = this.Song, Data = this.ReadFileAndConvertToMp3(), }; File.Delete(this._fileName); if (result.Data.Any() == false) return null; return result; }