Bitmap getThumbnailFromFrameCollection(ID3FrameCollection fc)
        {
            Bitmap retrievedPic = null;

            foreach (ID3v2Frame fra in fc)
            {
                if (fra is ID3v2PictureFrame)
                {
                    ID3v2PictureFrame pfra = (ID3v2PictureFrame)fra;

                    // If we don't have a picture grab the first one
                    if (retrievedPic == null)
                    {
                        retrievedPic = pfra.Picture;
                    }
                    else
                    {
                        // We have a picture, only overwrite if this is cover art
                        if (pfra.PictureType == PictureTypes.CoverFront)
                        {
                            retrievedPic = pfra.Picture;
                        }
                    }
                }
            }


            return(retrievedPic);
        }
        Bitmap GetThumbnailFromID3Tag(string fileName)
        {
            UltraID3 myMp3;

            try
            {
                myMp3 = new UltraID3();
                myMp3.Read(fileName);
                ID3FrameCollection myArtworkCollection = myMp3.ID3v2Tag.Frames.GetFrames(MultipleInstanceID3v2FrameTypes.ID3v22Picture);
                Bitmap             tryGetBMP           = getThumbnailFromFrameCollection(myArtworkCollection);

                if (tryGetBMP != null)
                {
                    return(tryGetBMP);
                }

                myArtworkCollection = myMp3.ID3v2Tag.Frames.GetFrames(MultipleInstanceID3v2FrameTypes.ID3v23Picture);
                tryGetBMP           = getThumbnailFromFrameCollection(myArtworkCollection);

                return(tryGetBMP);
            }
            catch
            {
                myMp3 = null;
            }

            return(null);
        }
Пример #3
0
        private void Load_MusicInfo()
        {
            FileInfo fileInfo = new FileInfo(MusicFile);
            UltraID3 myFile   = new UltraID3();

            myFile.Read(fileInfo.FullName);

            Bitmap             musicImgBitmap;
            ID3FrameCollection myFrames = myFile.ID3v2Tag.Frames.GetFrames(MultipleInstanceID3v2FrameTypes.ID3v23Picture);

            try
            {
                musicImgBitmap = ((ID3v23PictureFrame)myFrames[0]).Picture;
                picAlbum.Image = musicImgBitmap;
            }
            catch
            {
                picAlbum.Image = null;
            }

            string duration = Getmp3Duration(MusicFile);

            lblTitle.Text     = myFile.ID3v2Tag.Title;
            lblArtist.Text    = myFile.ID3v2Tag.Artist;
            lblTotalTime.Text = duration;
        }
Пример #4
0
        private void Load_MusicInfo()
        {
            FileInfo fileInfo = new FileInfo(SMusic);
            UltraID3 myFile   = new UltraID3();

            myFile.Read(fileInfo.FullName);

            Bitmap             musicImgBitmap;
            ID3FrameCollection myFrames = myFile.ID3v2Tag.Frames.GetFrames(MultipleInstanceID3v2FrameTypes.ID3v23Picture);

            try
            {
                musicImgBitmap    = ((ID3v23PictureFrame)myFrames[0]).Picture;
                pictureBox1.Image = musicImgBitmap;
            }
            catch
            {
                pictureBox1.Image = null;
            }

            string fileName = fileInfo.Name;

            double fileSize = fileInfo.Length;

            string duration = Getmp3Duration(SMusic);

            fileFolder       = fileInfo.Directory.FullName;
            lblTitle.Text    = myFile.ID3v2Tag.Title;
            lblArtist.Text   = myFile.ID3v2Tag.Artist;
            lblAlbum.Text    = myFile.ID3v2Tag.Album;
            lblPlayTIme.Text = duration;
            lblMemory.Text   = ((fileSize / 1024) / 1024).ToString("N2") + "MB";
        }
Пример #5
0
        public void UltraID3Test()
        {
            UltraID3 ultraID3 = new UltraID3();

            ultraID3.Read(@"e:\Music\Antenne Bayern Radio\Mirror Dawn.mp3");
            testContextInstance.WriteLine(ultraID3.Artist);
            testContextInstance.WriteLine(ultraID3.Genre);

            //ultraID3.Genre = "Rock";
            //ultraID3.Write();

            MPEGFrameInfo mpegFrameInfo = ultraID3.FirstMPEGFrameInfo;

            if (ultraID3.ID3v1Tag.ExistsInFile)
            {
            }
            ID3v2Tag           id3v2Tag = ultraID3.ID3v2Tag;
            ID3FrameCollection frames   = id3v2Tag.Frames;

            for (int i = 0; i < frames.Count; i++)
            {
                ID3v2Frame frame = frames[i];
            }

            id3v2Tag.Genre = "Chillout";
            ultraID3.Write();
        }
Пример #6
0
        private void getAlbumArt()
        {
            ID3FrameCollection frames = ID3tag.ID3v2Tag.Frames.GetFrames(MultipleInstanceID3v2FrameTypes.ID3v23Picture);

            if (frames.Count > 0)
            {
                ID3v23PictureFrame image = (ID3v23PictureFrame)frames[0];
                albumArtPicBox.Image   = image.Picture;
                picDemensionLabel.Text = image.Picture.Width + " x " + image.Picture.Height;
            }
            else
            {
                // no picture
                picDemensionLabel.Text = string.Empty;
            }
        }
    private void RenderPlaylistTracks(List <FileInfo> mediaFiles, PlaylistType playlist, bool shuffle)
    {
        List <TrackType> trackList = new List <TrackType>();

        string songPathPrefix  = string.Format("{0}/Handlers/Song.ashx?", UtilityMethods.GetFullAppUrlPrefix());
        string imagePathPrefix = string.Format("{0}/Handlers/CoverArt.ashx?", UtilityMethods.GetFullAppUrlPrefix());
        string noImage         = string.Format("{0}/Images/NoCoverArt.jpg", UtilityMethods.GetFullAppUrlPrefix());

        foreach (FileInfo mediaFileInfo in mediaFiles)
        {
            if (!mediaFileInfo.Exists)
            {
                continue;
            }

            TrackType trackInfo = new TrackType();

            try
            {
                UltraID3 mp3Info = new UltraID3();
                mp3Info.Read(mediaFileInfo.FullName);

                if (!mp3Info.ID3v23Tag.FoundFlag && !mp3Info.ID3v23Tag.FoundFlag)
                {
                    // No tags
                    trackInfo.title = mediaFileInfo.Name.Substring(0, mediaFileInfo.Name.Length - mediaFileInfo.Extension.Length);
                }
                else
                {
                    // Image
                    if (mp3Info.ID3v23Tag.FoundFlag)
                    {
                        ID3FrameCollection pictureFrames = mp3Info.ID3v23Tag.Frames.GetFrames(MultipleInstanceFrameTypes.Picture);
                        if (pictureFrames.Count > 0) // File has picture
                        {
                            trackInfo.image = imagePathPrefix + UtilityMethods.CalcAndStoreFilePathHash(mediaFileInfo.FullName);
                        }
                    }

                    // Title
                    if (mp3Info.Title == null || mp3Info.Title.Length == 0)
                    {
                        trackInfo.title = mediaFileInfo.Name.Substring(0, mediaFileInfo.Name.Length - mediaFileInfo.Extension.Length - 1);
                    }
                    else
                    {
                        trackInfo.title = mp3Info.Title;
                    }

                    trackInfo.meta          = new MetaType[1];
                    trackInfo.meta[0]       = new MetaType();
                    trackInfo.meta[0].rel   = "length";
                    trackInfo.meta[0].Value = mediaFileInfo.Length.ToString();

                    trackInfo.album      = mp3Info.Album;
                    trackInfo.creator    = mp3Info.Artist;
                    trackInfo.annotation = mp3Info.Comments;
                    if (mp3Info.TrackNum.HasValue)
                    {
                        trackInfo.trackNum = mp3Info.TrackNum.Value.ToString();
                    }
                }
            }
            catch
            {
                trackInfo.title = mediaFileInfo.Name.Substring(0, mediaFileInfo.Name.Length - mediaFileInfo.Extension.Length);
            }

            trackInfo.location    = new string[1];
            trackInfo.location[0] = songPathPrefix + UtilityMethods.CalcAndStoreFilePathHash(mediaFileInfo.FullName);

            if (trackInfo.title != null && trackInfo.title.Length > 0)
            {
                trackList.Add(trackInfo);
            }

            if (trackInfo.image == null || trackInfo.image.Length == 0)
            {
                trackInfo.image = noImage;
            }

            //System.GC.Collect();
        }

        playlist.trackList = trackList.ToArray();

        if (shuffle)
        {
            UtilityMethods.ShuffleArray(playlist.trackList);
        }
    }
        Bitmap getThumbnailFromFrameCollection(ID3FrameCollection fc)
        {
            Bitmap retrievedPic = null;

            foreach (ID3v2Frame fra in fc)
            {
                if (fra is ID3v2PictureFrame)
                {
                    ID3v2PictureFrame pfra = (ID3v2PictureFrame)fra;

                    // If we don't have a picture grab the first one
                    if (retrievedPic == null)
                        retrievedPic = pfra.Picture;
                    else
                    {
                        // We have a picture, only overwrite if this is cover art
                        if (pfra.PictureType == PictureTypes.CoverFront)
                            retrievedPic = pfra.Picture;
                    }
                }
            }

            return retrievedPic;
        }