Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
                }
            }
        }