public void AlbumArtTest() { var blankImage = new Bitmap(128, 128, PixelFormat.Format32bppRgb); var audioFileMetadata = AudioFileMetadata.BuildAudioFileMetaData(sampleMp3FileName); var hasAlbumArt = audioFileMetadata.HasAlbumArt; Assert.True(hasAlbumArt, "Failed to extract album art from MP3 file"); var albumArt = audioFileMetadata.AlbumArt; var imageLength = 0; var returnedImageLength = 0; using (var memStream = new MemoryStream()) { blankImage.Save(memStream, ImageFormat.Bmp); imageLength = memStream.ToArray().Length; } using (var memStream = new MemoryStream()) { albumArt.Save(memStream, ImageFormat.Bmp); returnedImageLength = memStream.ToArray().Length; } var imageSizeIsEqual = imageLength == returnedImageLength; Assert.True(imageSizeIsEqual, "Image extracted was not the same size as image stored in audio metdata tag"); }
public void BuildAudioFileMetdata() { var audioFileMetadata = AudioFileMetadata.BuildAudioFileMetaData(sampleMp3FileName); var metadataWasBuiltCorrectly = audioFileMetadata.HasFutherMetadataTag; Assert.True(metadataWasBuiltCorrectly, "Metdata was not extracted correctly from audio metadata tag"); }
public async Task <Song> AddFile(string filename, IAudioFileMetadata metadata = null) { if (!File.Exists(filename)) { throw new FileNotFoundException(string.Format("Could not add file '{0}' as it is was not found on this system", filename)); } if (!_audioFormats.FileSupported(filename)) { throw new FileFormatException(string.Format("Error adding file '{0}': this format is not supported", filename)); } if (metadata == null) { metadata = AudioFileMetadata.BuildAudioFileMetaData(filename); } var artist = await GetArtistForTag(metadata); var album = await GetAlbumForTag(metadata); var newSong = await BuildSongFromMetadata(filename, metadata, artist, album); return(newSong); }
public void Title() { var audioFileMetadata = AudioFileMetadata.BuildAudioFileMetaData(sampleMp3FileName); var title = audioFileMetadata.Title; var titleIsCorrect = !string.IsNullOrEmpty(title) && (title == "sample title"); Assert.True(titleIsCorrect, "Title name extracted was incorrect"); }
public void Length() { var audioFileMetadata = AudioFileMetadata.BuildAudioFileMetaData(sampleMp3FileName); var audioLength = audioFileMetadata.Length; var audioLengthIsCorrect = audioLength == 152; Assert.True(audioLengthIsCorrect, "Audio playback length extract was incorrect"); }
public void Artist() { var audioFileMetadata = AudioFileMetadata.BuildAudioFileMetaData(sampleMp3FileName); var artist = audioFileMetadata.Artist; var artistIsCorrect = !string.IsNullOrEmpty(artist) && (artist == "sample artist"); Assert.True(artistIsCorrect, "Artist name extracted was incorrect"); }
public void Album() { var audioFileMetadata = AudioFileMetadata.BuildAudioFileMetaData(sampleMp3FileName); var album = audioFileMetadata.Album; var albumIsCorrect = !string.IsNullOrEmpty(album) && (album == "sample album"); Assert.True(albumIsCorrect, "Album name extracted was incorrect"); }
private List <Tuple <string, IAudioFileMetadata> > ExtractMetadataFromFiles(IEnumerable <string> filesToAdd, Action <object, AudioFileImportedEventArgs> progressHandler, int concurrencyLimit, int numFilesToAdd) { return(filesToAdd.AsParallel().WithDegreeOfParallelism(concurrencyLimit).Select(f => { var metadataTuple = new Tuple <string, IAudioFileMetadata>(f, AudioFileMetadata.BuildAudioFileMetaData(f)); Task.Run(() => progressHandler?.Invoke(this, new AudioFileImportedEventArgs { JustProcessing = true, FileAdded = f, TotalFilesThisImport = numFilesToAdd })); return metadataTuple; }).ToList()); }