|
Программирование >> Автоматически обновляемые приложения
Создаем новый тег ID3 (128 байт) byte[] tagByteArray = new byte[128]; for (int i = 0; i < tagByteArray. Lengtli; i++) инициализация массива значением О tagByteArray[i] = 0; Конвертируем массив байтов в строку кодировки Windows-1251 Encoding encoding = Encoding.GetEncoding(1251); Копируем TAG в массив byte[] newByteArray = encoding.GetBytes( TAG ); Array.Copy(newByteArray, 0, tagByteArray, 0, newByteArray. Lengtli) ; Копируем Title в массив newByteArray = encoding.GetBytes(рагатМРЗ.id3Title); Array.Copy(newByteArray, 0, tagByteArray, 3, newByteArray. Lengtli) ; Копируем Artist в массив newByteArray = encoding.GetBytes(рагатМРЗ.id3Artist); Array.Copy(newByteArray, 0, tagByteArray, 33, newByteArray.Length); Копируем Album в массив newByteArray = encoding.GetBytes(рагатМРЗ.id3Album); Array.Copy(newByteArray, 0, tagByteArray, 63, newByteArray.Length); Копируем Year в массив newByteArray = encoding.GetBytes(рагатМРЗ.id3Year); Array.Copy(newByteArray, 0, tagByteArray, 93, newByteArray.Length); Копируем Comment в массив newByteArray = encoding.GetBytes(рагатМРЗ.id3Comment); Array.Copy(newByteArray, 0, tagByteArray, 97, newByteArray.Length); Копируем Track и Genre в массив tagByteArray[126] = рагатМРЗ.id3TrackNumber; tagByteArray[127] = рагатМРЗ.id3Genre; Сохраняем результат на диске FileStream fs = A в листинге 13.9 показан код, который позволяет просматривать и обновлять информацию, используя созданную вами в Visual Studio 2005/2008 форму. ! Листинг 13.9. Форма для работы с тегами МРЗ МРЗ mp3file; private void butLoadMP3 Click(object sender, EventArgs e) { Загружаем МРЗ-файл LoadMp3(); private void LoadMp3() { Выбираем файл МРЗ OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Filter = файлы МРЗ (*.mp3)*.mp3 ; DialogResult result = fileDialog.ShowDialog(); if (result == DialogResult.Cancel) return; string fileName = fileDialog.FileName; Filelnfo fFilelnfo = new Filelnfo(fileName); mp3file = new MP3(fFilelnfo.DirectoryName, fFilelnfo.Name) MP3Tag.ReadMP3Tag(ref mp3file); Вьгоодим полученную информацию на экран txtTitle.Text = mp3file.id3Title; txtArtist.Text = mp3file.id3Artist; new FileStream(рагатМРЗ.fileComplete, FileMode.Open); if (рагатМРЗ.hasID3Tag) fs.Seek(-128, SeekOrigin.End); else fs.Seek(0, SeekOrigin.End); fs.Write(tagByteArray, 0, 128); fs.Close 0; рагатМРЗ.hasID3Tag = true; private void SaveButton Click(object sender, EventArgs e) { SaveMP3(); private void SaveMP3() { if (mp3file.id3Title == null) return; mp3file.id3Title = txtTitle.Text; mp3file.id3Artist = txtArtist.Text; mp3file.id3Album = txtAlbum.Text; mp3file.id3Year = txtYear.Text; mp3file.id3Comment = txtComment.Text; mp3file.id3Genre = Convert.ToByte(txtGenre.Text); МРЗТад.SaveMP3Tag(ref mp3file); private void MP3Form Load(object sender, EventArgs e) { cboGenres.Items.Add( Блюз ); cboGenres.Items.Add( Классический рок ); cboGenres.Items.Add( Кантри ); cboGenres.Items.Add( Dance ); cboGenres.Items.Add( Диско ); cboGenres.Items.Add( Фанк ); cboGenres.Items.Add( Гранж ); cboGenres.Items.Add( Хип-Хоп ); cboGenres.Items.Add( Джаз ); cboGenres.Items.Add( Метал ); cboGenres.Items.Add( НьюЭйдж ); cboGenres.Items.Add( Oldies ); cboGenres.Items.Add( Другое ); cboGenres.Items.Add( Поп ); txtAlbum.Text = mp3f ile. idSAlbum; txtYear.Text = mp3file.idSYear; txtCoiranent. Text = mp3f ile. idSCoirnient-txtGenre. Text = mp3file.id3Genre.ToString0; cboGenres.Selectedlndex = mp3file.id3Genre;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |