Xwab
Форумыnavigate_nextПрограммирование на PHP

Ваши библиотеки.
Сообщения
manyrus

Выкладываем сюда свои библиотеки. Парадигма желательно объектная, но процедурная/функциональная тоже пойдёт.

Вот моя, к примеру:

Представляю вам билиотеку для работы с mp3. Данный класс преобразует mp3 файл в новый, изменяя битрейт и idv3-тэги.
Требования: (lame или ffmpeg), php5.3+.
Как работать:

require 'encoder.php';

//импортируем пакеты
use \encoder\encoder\Encoder;
use \encoder\encoder\ffmpeg\SimpleFFmpegEncoder;
use \encoder\encoder\lame\SimpleLameEncoder;
use \encoder\ID3\v1\simple\SimpleID3v1Copy;
use \encoder\ID3\v2\simple\SimpleID3v2Copy;
use \encoder\exception\FileNotFoundException;
use \encoder\exception\EmptyAttributeException;
use \encoder\exception\FileIsNotReadableException;
use \encoder\exception\FileIsNotWritableException;
//

try {
    $t = new Encoder(new SimpleLameEncoder()); //выбираем енкодер, new SimpleLameEncoder() - lame|SimpleFfmpegEncoder() - ffmpeg
    $t->setFile('/home/manyrus/tr283.mp3'); //выбираем файл, который будем перекодировать.
    $t->setBitrate(320)/устанавливаем битрейт для будущего файла
    $t->setID3v1Copy(new SimpleID3v1Copy()) /устанавливаем класс, для работы с тегами версии 1, обязательно
    $t->setID3v2Copy(new SimpleID3v2Copy()) /устанавливаем класс, для работы с тегами версии 2, обязательно
    $t->setOutputFile('/home/manyrus/tr2833.mp3') /выбираем файл, куда будет сохранять перекодированный файл
    $t->exec() /выполняем
} catch (FileNotFoundException $e) {//Дальше идут исключения, это исключение означает, что файл, который надо перекодировать, не существует или возникли ошибки при перекодировании(не хватает прав)
    die($e->getMessage());
} catch (EmptyAttributeException $e) {//вы что-то не установили (битрейт, файл на выходе, и т.п.)
    die($e->getMessage()."\n");
} catch(FileIsNotReadableException $e) {//файл, который надо перекодировать, нельзя прочитать(прав не хватает)
    die($e->getMessage()."\n");
} catch(FileIsNotWritableException $e) {//нельзя создать/записать перекодированный файл(прав не хватает)
    die($e->getMessage()."\n");
}

Класс копирует все теги из оригинального файла, но могут быть проблемы с id3v2.4
P.s.: скоро проект будет на гитхабе. Пока тут полежит.
добавлено спустя 4 минуты:
Хотел оформить в отдельном посте, напишите кто-нибудь что-нибудь в этой теме, чтобы разделить  .

15 Дек 2011, 16:33
Elime

"напишите кто-нибудь что-нибудь в этой теме, чтобы разделить "

ок

15 Дек 2011, 19:59
Ответить на тему