Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ID3v1 в MP3 файлах, ID3v1 в MP3 файлах 
:(
    Опции темы
LeftTheHaskel
  Дата 8.6.2012, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.5.2012

Репутация: нет
Всего: нет



Hi! Вот решил реализовать "вытаскивание" технической информации из mp3 файла.
Код

public class MusicID3Tag класс для музыки 
        {

            public byte[] TAGID = new byte[3];      //  3
            public byte[] Title = new byte[30];     //  30
            public byte[] Artist = new byte[30];    //  30 
            public byte[] Album = new byte[30];     //  30 
            public byte[] Year = new byte[4];       //  4 
            public byte[] Comment = new byte[28];   //  30 
            public byte[] Genre = new byte[1];      //  1
            public byte[] Bitrate = new byte[1];
            public byte[] Duration = new byte[1];
       

        }
private void создатьToolStripMenuItem_Click(object sender, EventArgs e)
            {
                DialogResult dialogresult = folderBrowserDialog1.ShowDialog();
                if (dialogresult == DialogResult.OK)
                {
                    DataTable dt = new DataTable();


                    dt.Columns.Add("Исполнитель");
                    dt.Columns.Add("Название_песни");
                    dt.Columns.Add("Альбом");
                    dt.Columns.Add("Комментарии");
                    dt.Columns.Add("Год");
                    dt.Columns.Add("4то-то");
                    dt.Columns.Add("Длительность");
                    dt.Columns.Add("Жанр"); 


                    string[] fullfilesPath = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.mp3*", SearchOption.AllDirectories);
                    int capacity = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.mp3*", SearchOption.AllDirectories).Length;
                    GlobalPeremennie.KolvoF = capacity;
                    for (int i = 0; i <= capacity - 1; i++)
                    {
                        string filePath = fullfilesPath[i];
                        using (FileStream fs = File.OpenRead(filePath))
                        {
                            if (fs.Length >= 128)
                            {
                                MusicID3Tag tag = new MusicID3Tag();

                                fs.Seek(-128, SeekOrigin.End);
                                fs.Read(tag.TAGID, 0, tag.TAGID.Length);
                                fs.Read(tag.Title, 0, tag.Title.Length);
                                fs.Read(tag.Artist, 0, tag.Artist.Length);
                                fs.Read(tag.Album, 0, tag.Album.Length);
                                fs.Read(tag.Year, 0, tag.Year.Length);
                                fs.Read(tag.Bitrate, 0, tag.Bitrate.Length);
                                fs.Read(tag.Duration, 0, tag.Duration.Length);
                                fs.Read(tag.Comment, 0, tag.Comment.Length);
                                fs.Read(tag.Genre, 0, tag.Genre.Length);
                                string theTAGID = Encoding.Default.GetString(tag.TAGID);

                                if (theTAGID.Equals("TAG"))
                                {

                                    string Title = Encoding.Default.GetString(tag.Title);
                                    string Artist = Encoding.Default.GetString(tag.Artist);
                                    string Album = Encoding.Default.GetString(tag.Album);
                                    string Year = Encoding.Default.GetString(tag.Year);
                                    string Comment = Encoding.Default.GetString(tag.Comment);
                                    string Genre = Encoding.Default.GetString(tag.Genre);
                                    string Bitrate = Encoding.Default.GetString(tag.Bitrate);
                                    string Duration = Encoding.Default.GetString(tag.Duration);
                                    dt.Rows.Add(Artist, Title, Album,Comment, Year,Bitrate,Duration, Genre);
                                    dataGridView1.DataSource = dt;
                                }}}}}} 

Достаётся только название песни, альбом,исполнитель и год. А остальные не извлекаются. Так же программа в DataGridView дописывает кучу "\0". Пожалуйста помогите решить проблему!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.