Russian Qt Forum
Ноябрь 27, 2024, 07:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Mp3 тэги  (Прочитано 4043 раз)
Witcher
Гость
« : Июль 24, 2011, 13:15 »

Какими способами можно вытащить их из файла?, хранятся они в последних 128-ми байтах MP3-файла, подскажите команду для открытия файла и вытаскивания этих самых 128-ми байтов..
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Июль 24, 2011, 13:48 »

QFile::seek
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #2 : Июль 24, 2011, 13:56 »

Можно ради интереса поковыряться в исходниках http://code.google.com/p/qtagger/
Записан
Witcher
Гость
« Ответ #3 : Июль 24, 2011, 14:23 »

благодарю, посмотрю что получится)
Записан
Witcher
Гость
« Ответ #4 : Июль 24, 2011, 16:28 »

Сделал так

Код:
void MainWindow::Tags(char *tracktag){

    QFile file(tracktag);
    file.open(QIODevice::ReadOnly);
    file.seek(file.size()-128);
    QTextCodec::setCodecForCStrings( QTextCodec::codecForName("windows-1251") );
    QByteArray title = file.readAll();
     ///

}

Получаю только

TAGНазвание трека

а иногда вообще пустую строку
По идее после TAG должен идти id , но почемуто его нет, в стандартном плеере убунту все норм отображается, может что-то я не правильно делаю?

}
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #5 : Июль 24, 2011, 17:45 »

1) Вы уверены, что там cp1251 везде, а не utf-8?
2) Вы уверены, что там везде 128-байтный ID3v1, а не 227-байтный?
3) Вы уверены, что там вообще не ID3v2?

По идее после TAG должен идти id , но почемуто его нет
А вы как это определяете? Если пытаетесь вывести, как строчку, то оно дойдёт до '\0' и на этом успокоится.
Записан
Witcher
Гость
« Ответ #6 : Июль 24, 2011, 18:17 »

Да там везде 128, utf-8 не даст требуемого результата(получим тоже самое, только русские символы не отобразятся нормально), третье тоже отпадает. Выводил и как строку и как массив символов, результат одинаковый.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #7 : Июль 24, 2011, 18:36 »

Выводил и как строку и как массив символов, результат одинаковый.
Покажите вывод.

Да там везде 128
«а иногда вообще пустую строку» с большой вероятностью говорит об обратном.
Записан
Fess
Гость
« Ответ #8 : Июль 24, 2011, 18:37 »

Советую вам все же не велосипедить, а воспользоваться готовым решением:
http://developer.kde.org/~wheeler/taglib.html - основа QTagger
http://id3lib.sourceforge.net/
или им подобными.
С использованием одной библиотеки вы разберетесь быстрее, чем с форматом файлов и кучей кодировок.
Записан
Witcher
Гость
« Ответ #9 : Июль 24, 2011, 18:47 »

Короче все дело в "/0", разобрался сейчас переделаю.
Всех благодарю за советы)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 23.