Программирование >>  Автоматически обновляемые приложения 

1 ... 126 127 128 [ 129 ] 130 131 132 ... 170


Создаем новый тег 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;



1 ... 126 127 128 [ 129 ] 130 131 132 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика