public static IEnumerable <int> LoadFileLenthFromMp3s(string dir, MpegDataSize sizeProvider, MpegSkipBytes skipBytes) { List <int> result = new List <int>(); foreach (var file in VirtualDrive.GetFiles(dir, "*.mp3")) { int fileLengthInSecs = LoadFileLengthFromMp3(file, sizeProvider, skipBytes); if (fileLengthInSecs != -1) { result.Add(fileLengthInSecs); } } return(result); }
public static int LoadFileLengthFromMp3(string file, MpegDataSize sizeProvider, MpegSkipBytes skipBytes) { using (Stream stream = VirtualDrive.OpenInStream(file)) { MP3Header mp3hdr = new MP3Header(); FileInfo fileInfo = new FileInfo(file); stream.Seek(skipBytes(fileInfo), SeekOrigin.Current); bool boolIsMP3 = mp3hdr.Read(stream, sizeProvider(fileInfo)); if (boolIsMP3) { return((int)Math.Round(mp3hdr.LengthInSeconds)); } else { return(0); } } }