Save() 공개 메소드

Save ID3v2 data without renaming file with minor version of 3
public Save ( ) : void
리턴 void
예제 #1
0
        private void Menu_DeleteLyrics_Click(object sender, RoutedEventArgs e)
        {
            int SelectedIndex = DataListBox.SelectedIndex;
            if (SelectedIndex < 0 || SelectedIndex > SongList.Count - 1) return;
            if (ShowMessageBoxOkCancel("\n确定要删除当前歌曲歌词吗?") == 1)
            {
                ID3v2 id3v2 = new ID3v2(SongList[SelectedIndex].SongPath, true);
                if (id3v2.TextWithLanguageFrames.Count > 0)
                {
                    id3v2.TextWithLanguageFrames.Clear();
                }
                id3v2.Save();
                SongList[SelectedIndex].SongLyrics = null;
                SongList[SelectedIndex].SongLyricsUnsaved = null;

                DataListBox.SelectedIndex = -1;
                DataListBox.SelectedIndex = SelectedIndex;
            }
        }
예제 #2
0
        private void Button_SaveSong_Click(object sender, RoutedEventArgs e)
        {
            //保存信息
            //悲催的代码让我的歌曲化为灰烬……
            try
            {
                int NowSelect = DataListBox.SelectedIndex;
                if (NowSelect < 0) return;
                string FileName = SongList[NowSelect].SongPath;
                bool NeedToSave = false;

                ID3v2 id3v2 = new ID3v2(FileName, true);

                id3v2.TextFrames.Add(new ID3.ID3v2Frames.TextFrames.TextFrame("TIT2", 0, TextBox_Title.Text, TextEncodings.UTF_16, 3));
                id3v2.TextFrames.Add(new ID3.ID3v2Frames.TextFrames.TextFrame("TPE1", 0, TextBox_Artist.Text, TextEncodings.UTF_16, 3));
                id3v2.TextFrames.Add(new ID3.ID3v2Frames.TextFrames.TextFrame("TALB", 0, TextBox_Album.Text, TextEncodings.UTF_16, 3));

                if (Checkbox_lyrics.IsChecked == true && (string)Checkbox_lyrics.Content == "保存歌曲歌词" && !string.IsNullOrEmpty(SongList[NowSelect].SongLyricsUnsaved))
                {
                    NeedToSave = true;
                    SongList[NowSelect].SongLyrics = SongList[NowSelect].SongLyricsUnsaved;

                    id3v2.TextWithLanguageFrames.Add(new ID3.ID3v2Frames.TextFrames.TextWithLanguageFrame("USLT", 0, SongList[NowSelect].SongLyrics, "", TextEncodings.UTF_16, "eng"));
                }
                if (Checkbox_albumpicture.IsChecked == true && (string)Checkbox_albumpicture.Content == "保存专辑封面")
                {
                    NeedToSave = true;
                    BitmapImage Bitmap = (BitmapImage)Image_album.Source;
                    while (Bitmap.IsDownloading)
                    {
                        Thread.Sleep(50);
                        System.Windows.Forms.Application.DoEvents();
                    }
                    SongList[NowSelect].SongAlbum = Bitmap;

                    JpegBitmapEncoder encoder = new JpegBitmapEncoder();
                    encoder.Frames.Add(BitmapFrame.Create(Bitmap));
                    MemoryStream stream = new MemoryStream();
                    encoder.Save(stream);
                    id3v2.AttachedPictureFrames.Add(new ID3.ID3v2Frames.BinaryFrames.AttachedPictureFrame(0, "", TextEncodings.UTF_16, "image/jpeg",
                                                   ID3.ID3v2Frames.BinaryFrames.AttachedPictureFrame.PictureTypes.Cover_Front, stream));

                }
                if (NeedToSave)
                {
                    id3v2.Save();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("保存出错,请将下列信息反馈到官方博客,以帮助我们改进软件。谢谢!\n(官方博客:http://www.4321.la,下列信息Ctrl+C可复制)" + ex.Message);
            }
        }
예제 #3
0
        private void Menu_DeleteAlbum_Click(object sender, RoutedEventArgs e)
        {
            int SelectedIndex = DataListBox.SelectedIndex;
            if (SelectedIndex < 0 || SelectedIndex > SongList.Count - 1) return;
            if (ShowMessageBoxOkCancel("\n确定要删除当前歌曲封面吗?") == 1)
            {
                ID3v2 id3v2 = new ID3v2(SongList[SelectedIndex].SongPath, true);
                if (id3v2.AttachedPictureFrames.Count > 0)
                {
                    id3v2.AttachedPictureFrames.Clear();
                }
                id3v2.Save();
                SongList[SelectedIndex].SongAlbum = null;

                DataListBox.SelectedIndex = -1;
                DataListBox.SelectedIndex = SelectedIndex;
            }
        }
예제 #4
0
        private void Button_Lyrics_OK_Click(object sender, RoutedEventArgs e)
        {
            int SelectedIndex = DataListBox.SelectedIndex;
            if (SelectedIndex < 0 || SelectedIndex > SongList.Count - 1) return;

            ID3v2 id3v2 = new ID3v2(SongList[SelectedIndex].SongPath, true);
            if (id3v2.TextWithLanguageFrames.Count > 0)
            {
                id3v2.TextWithLanguageFrames.Clear();
            }

            id3v2.TextWithLanguageFrames.Add(new ID3.ID3v2Frames.TextFrames.TextWithLanguageFrame("USLT", 0, Textbox_EditLyrics.Text, "", TextEncodings.UTF_16, "eng"));
            SongList[SelectedIndex].SongLyrics = Textbox_EditLyrics.Text;
            id3v2.Save();
            DataListBox.SelectedIndex = -1;
            DataListBox.SelectedIndex = SelectedIndex;

            Sb5.Begin();
            DataListBox.IsEnabled = true;
        }