English translation...
 
 Сатори
 

     
 
Сергей Москаленко
Как я писал mp3tagConverter.
http://camopu.rhorse.ru/prg/mp3tagcorrector.html

Любому, кто слушает музыку на Маке, знакомы "белиберда", которая получается при некоторых "неправильных" кодировках тагов в mp3-файлах.





Я столкнулся с этой проблемой три года назад, когда только поступил на работу в нашу компанию. Было множество различных неудобств и непривычностей, связанных со сменой системы и платформы, поэтому я не уделял слишком много внимания буковкам-"кривлякам" в плей-листах. Однако, спустя примерно полгода мне это надоело, я не нашел ни одного корректора, а встроенные в iTunes вообще не работали.

Я решил написать свой корректор-конвертор. Для начала я разобрался со старыми mp3-тагами, а также с тагами iTunes, которые просто относятся к следующему поколению тагов и позволяют включать в свое тело не только текстовую информацию про исполнителя, название песен, альбома и так далее, а и графические элементы - такие, как обложка альбома и даже небольшие видеоролики. Меня эти возможности не интересовали, я просто отметил про себя, что это возможно.

Я написал команд-лайновую тулзу(так у нас называют утилиты). Она была простой как палка - просто брала файл и корректировала соответствующие поля. Утилитой пользовались ребята в нашей Компании и особых неудобств не испытывали, довольствуясь bash-файлом примерно следующего содержания:


#!/bin/sh

find . -type f -name "*.mp3" -exec ./mp3tagConverter \{\} \;

В процессе многочисленных переездов с компьютера на компьютер исходники благополучно затерялись, а писать заново мне не хотелось. Поэтому, я решил, пусть остается старый коман-лайновый конвертор. Необходимо лишь дописать к нему простейший графический интерфейс. Программа была написана за 2 часа. Сердцем ее послужили два основных метода:


- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename
{
    [self checkForFolderAndProcessFile:filename];
    return YES;
}

- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames
{
    int i, m = [filenames count];
    for (i = 0; i < m; i++)
       [self checkForFolderAndProcessFile:[filenames objectAtIndex:i]];
}


Написанная ранее утилита попросту укладывалась в ресурсы, а затем запускалась с соответствующим параметром. Вот, собственно, и все.

Пользуйтесь на здоровье.




ССЫЛКИ.


ССЫЛКИ.

1. Резюме автора статьи (динамическое - содержимое и фото меняются в зависимости от времени загрузки).
http://camopu.rhorse.ru/resume.html

2. Статья. "Стратегические планы Apple или 'Машина Времени' существует".
http://camopu.rhorse.ru/apple.html

3. Литературное творчество автора (стихи, проза).
http://www.stihi.ru/author.html?sergey_msv
http://www.proza.ru/author.html?sergey_msv

4. Программы, статьи, фотографии Автора.
http://camopu.rhorse.ru

5. Содержание тестов по C++ и Objective-C, пройденное Автором в Киеве во время собеседований (постоянно обновляется и дополняется).
http://camopu.rhorse.ru/articles/c-plus-plus_objective-c_tests_in_kiev.html

Все авторские права принадлежат Автору (c) Сергей Москаленко.
Автор разрешает размещать данную статью в неизмененном виде на Ваших сайтах. Обязательно сообщите адрес - соответствующая ссылка появится на сайтах Автора.

Copyright (c) Serge Moskalenko.

 
 
     


 

   
 


   

 

   
 

   
Статьи
Графика
Конкурс 12000 $
Ход Конкурса
Конкурс(+) заявки
Конкурс (light)
Будущее Конкурса
  Резюме
Предлагаю работу
Ищу работу
Работаю даром
  Программы
Сервисы сайта
  Форум
 
   
 
 
 

00035640

 
 
 
 
 
 
 
 
   
   
Дизайн-студия "Феофан Грек (простота без пестроты)"