Класс для работы с мп3 XeOn 12 Июн 2012, 2:25 Представлю вашему вниманию свой класс для работы с mp3 файлами. Класс для работы с мп3 файлами. Автор SkyFire aka XeOn. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Запрещено продавать класс, выдавать за свой, изменять код класса, использовать части кода класса. Уважайте чужой труд! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Возможности: - Чтение / запись тегов в utf-8 - Конвертирование из мп3 в wav, aac, m4a, wma - Изменение битрейта мп3 файлов - Нарезка - Чтение / запись обложки альбома ----------------------------- В скрипте задействована библиотека getID3 для работы с тегами. ----------------------------- Пути к файлу и к обложке альбома указывайте от корня сервера но без слеша в начале. Например файл находится по адресу http://site.ru/dir/file.mp3 тогда путь будет таким: dir/file.mp3 . Использовать класс легко. Ниже несколько примеров: 'Альбом', //альбом 'artist' => 'David Guetta', //исполнитель 'title' => 'Test', //название трека 'genre' => 'house', //жанр 'comment' => 'nice track', //комментарий 'year' => '2006' //год ); //Получаем информацию о файле (Теги и обложку если есть) //Выведет такие теги как album, artist, title, genre, year, comment и если есть обложка то и обложку в виде строки //А также bitrate, sample_rate, filesize, duration, channels //Что-бы обложка стала картинкой просто сохраните ее в файл file_put_contents('cover.jpg', $info['cover']); $info = $mp3 -> GetMp3Info($file); //Записываем теги и обложку //Если нужно записать только теги то третий аргумент не указываем $mp3 -> Write($file, $tags, $cover); //Записываем теги и обложку альбома //Конвертируем в wav с битрейтом 128 и обрезаем с 0 до 20 секунды. //Если обрезать не нужно то просто не указывайте четвертый аргумент $mp3 -> Convert($file, $bit, $outFile, $time); ?> Вот вроде-бы и все))) ------------------------------ Для работы конвертирования необходим ffmpeg. Пишите замечания и пожелания. добавлено спустя 4 минуты: Кабэ мой первый класс)) ---------------------------- В предидущем файле есть одна ошибка при записи тегов неверно определялся путь к файлу. Вот версия с исправлением + добавил копирование тегов при конвертировании (но не тестировал). --------------- =VVV85= 12 Июн 2012, 19:37 А в скрипт нельзя его внедрить поиска музыки? А то у меня он без конвертации --------------- Febian 12 Июн 2012, 20:20 =VVV85=, с этим классом вообще ничего нельзя делать, судя по первому посту. Им можно лишь любоваться.. ;/ --------------- Wins 12 Июн 2012, 20:25 Зачем вылаживать если его нельзя использовать? --------------- Akdmeh 12 Июн 2012, 20:28 "Запрещено продавать класс, выдавать за свой, изменять код класса, использовать части кода класса." - то есть, я не могу его использовать как часть своего платного скрипта? Смысл тогда от скрипта? Полюбоваться? И как это я не могу скопировать часть кода. Уверен, что вы и сами смотрели другой код и переписывали его. А так вообще полезный класс, спасибо, но политику лицензии я бы пересмотрел, сделал бы, к примеру, необходимость оставлять копирайт, но иметь право изменять и поставлять в комплекте платного скрипта. Этот вопрос довольно актуальный для большинства, считаю. --------------- jasis 12 Июн 2012, 20:51 XeOn, конвертирование работает без всяких system() exec() ? и что значит обложка, типо можна вытягивать картинку-обложку из музыкального файла? --------------- XeOn 12 Июн 2012, 23:23 "Запрещено продавать класс, выдавать за свой, изменять код класса, использовать части кода класса." - то есть, я не могу его использовать как часть своего платного скрипта? Смысл тогда от скрипта? Полюбоваться? И как это я не могу скопировать часть кода. Уверен, что вы и сами смотрели другой код и переписывали его. А так вообще полезный класс, спасибо, но политику лицензии я бы пересмотрел, сделал бы, к примеру, необходимость оставлять копирайт, но иметь право изменять и поставлять в комплекте платного скрипта. Этот вопрос довольно актуальный для большинства, считаю. Нет, в платном скрипте использовать можно. Нельзя сам класс продавать. И насчет того что нельзя использовать части класса: нельзя например взять функцию из класса и использовать как свою. Просто неправильно сформулировал. добавлено спустя 58 секунд: XeOn, конвертирование работает без всяких system() exec() ? и что значит обложка, типо можна вытягивать картинку-обложку из музыкального файла? Без exec и system ты конвертирование не сделаешь. Да, можно вытягивать обложку и записывать. --------------- Default_mo 12 Июн 2012, 23:24 вообще я там не увидел ничего нового. просто более компактный вывод для getid3. Так скажем, вариант "для ленивых". добавлено спустя 39 секунд: я думаю тему лучше назвать "класс для работы с getid3" --------------- XeOn 12 Июн 2012, 23:30 Default_mo, Не только теги ведь. Еще нарезка, конвертирование, изминение битрейта. Я изначально для ссебя его писал. добавлено спустя 45 секунд: Default_mo, getID3 не умеет конвертировать и резать. добавлено спустя 58 секунд: Wins, Использовать можно, нельзя на части разбирать. добавлено спустя 50 секунд: =VVV85=, Почему нельзя, можно конечно. Он для этого и писался. добавлено спустя 2 минуты: Вобщем использовать или нет решать вам, я просто выложил свои наработки, которые писал для себя когда делал скрипт муз. сайта, но потом забросил. А класс что-бы не валялся решил выложить. --------------- jasis 12 Июн 2012, 23:33 XeOn, тю) тогда ничего хорошего нет! конвертирование делается одной строкой через exec --------------- Default_mo 12 Июн 2012, 23:35 XeOn, ну добавили две команды для конверта и нарезки. --------------- XeOn 12 Июн 2012, 23:42 jasis, А хорошее это что? добавлено спустя 38 секунд: Вобщем. кому надо - пользуемся. А кому ненравится - пишите свое. --------------- bboytwist 13 Июн 2012, 14:24 XeOn, не обижайся, но я думаю всем насрать и если кому понравится функция с твоего класса он её вытащит, кому то что то не понравится он переделает, так что если выкладываешь что либо в паблик то пытатся загнать людей в рамки сообщением врядле получится. --------------- jasis 13 Июн 2012, 14:49 XeOn, уже написаны для нас! --------------- =VVV85= 13 Июн 2012, 23:30 XeOn, можешь мне этот класс вписать в скрипт поиска? А то я не шарю куда че, могу оплатить:) --------------- Pirate 15 Июн 2012, 15:47 а как же будет id3cp работать, если id3lib не установлен? создавать объект класса можно без скобок, об остальном лучше промолчу ;) --------------- XeOn 16 Июн 2012, 13:47 Pirate, 1) Мне нравится со скобками. 2) Это мой первый класс. добавлено спустя 38 секунд: Я промолчу про код твоего поиска мп3 (тот что не на ООП). --------------- Pirate 18 Июн 2012, 13:35 XeOn, можно сравнить то что мы имеем сейчас, и то что было в 2010 =) --------------- Afictox 18 Июн 2012, 13:50 Нет, в платном скрипте использовать можно. Нельзя сам класс продавать. :D:D если мой платный скрипт на 91.2% будет состоять из твоих платных классов, его тоже можно продавать? --------------- XeOn 18 Июн 2012, 17:27 Pirate, Можно просто невыделыватся? добавлено спустя 1 минуту: Afictox, мой класс не платный. Нет разницы сколько % от общего кода занимает класс, его можно использовать в платных скриптах. С сохранением копирайтов естественно. --------------- manyrus 06 Июн 2013, 22:20 Я не могу назвать оо-подход. Просто ф-ии - обёртки над getId3. Тут нужно понять суть, что такое объект. Если интересно, могу показать, как бы это выглядело в оо-стиле. --------------- DenSBK 06 Июн 2013, 23:39 конвертирование делается одной строкой через exec Думаеш каждый хостинг разрешает выполнять команды в exec? ---------------