Представляю wimamp-подобный музыкальный плеер — Qmmp, разработанный нашими соотечественниками на Qt под лицензией GPLv2. Хотя на первый взгляд ничего особенного нет, я, как программист, вижу в нем большой потенциал. В этом топике я бегло пробегусь по его возможностям, а так же распишу, в чем же его особенность.
Как уже было сказано, плеер winamp-подобный, с полной поддержкой скинов для winamp 2.x. Похож на XMMS и Audacious. Интерфейс стандартен для плееров этого типа: Окно управления, эквалайзер и плейлист.
Существуют проекты других интерфейсов для qmmp: amarok-like и foobar-like. Подробнее.
Написан на С++ с использованием Qt, без привязки к конкретному DE. Есть режимы совместимости с Openbox, Metacity. Поддержка системы уведомлений KDE4.
Полный перечень всех возможностей можно посмотреть на сайте проекта: ссылка.
Старая версия ( 0.3.1 ) плеера доступна из репозитория. Новая версия ( на момент написания топика, 0.4.0 доступна на Launchpad.net
Музыкальный плеер Qmmp уже включен в большинство дистрибутивов.
Если нет, проверьте страницу загрузки с официального сайта.
А изюминка в структуре кода, которую разработали авторы. Все сделано по лучшим традициям ООП, в котором плеер делится на ядро, GUI и модули. Связь между компонентами осуществляется посредством некоторого API. Конкретная реализация компонента не влияет на остальную часть плеера. Это дает возможность, к примеру, переписать GUI без необходимости переписывать остальную часть плеера.
Поддержка форматов реализована в виде модулей. В дальнейшем, для поддержки другого формата нужно всего лишь реализовать API ядра для проигрывания файла.
Все дополнительные функции, такие как трей, тексты и обложки песен, скробер и т.п., реализованы также в виде модулей. Хорошо продуманный API ядра дает широкие возможности для реализации вашей затеи в виде модуля.
С точки зрения простого пользователя, все равно, как реализован код. Главное, чтобы он работал. Но могу сказать, что с такой структурой кода, плеер прост в поддержке и доработке. Многие программисты, относительно малыми усилиями, смогут внести свою лепту в разработку плеера. Им не нужно будет изучать строение программы, ее исходный код и т.п… Достаточно просто воспользоваться API, которое предоставляет ядро. Это дает огромный потенциал для развития программы.
Целей у этого топика несколько. Во-первых, хочу познакомить сообщество с таким плеером. Во-вторых, этот плеер — яркий пример действительно качественной структуры программы. А в-третьих, я думаю, авторам программы не помешает лишняя помощь по проекту, и не только программированием.
Отношение к этому проекту я никакого не имею. С авторами не знаком, и никакой выгоды от этого топика не имею. Все вышесказанное — мое мнение, которое не претендует на объективность. Как говорится, о вкусах не спорят.
UPD. Обновил секцию "Интерфейс". Спасибо харбраюзеру dexon за наводку.
Интерфейс
Как уже было сказано, плеер winamp-подобный, с полной поддержкой скинов для winamp 2.x. Похож на XMMS и Audacious. Интерфейс стандартен для плееров этого типа: Окно управления, эквалайзер и плейлист.
Существуют проекты других интерфейсов для qmmp: amarok-like и foobar-like. Подробнее.
Возможности
- поддержка разнообразных музыкальных форматов
- поддержка видео через mplayer
- тексты песен и обложки
- аудио и визуальные эффекты
- вывод через OSS, ALSA, PulseAudio, JACK и WaveOut
- скробер Last.fm
- поддержка CDDB
- горячие клавиши
Написан на С++ с использованием Qt, без привязки к конкретному DE. Есть режимы совместимости с Openbox, Metacity. Поддержка системы уведомлений KDE4.
Полный перечень всех возможностей можно посмотреть на сайте проекта: ссылка.
Установка
Для Ubuntu
Старая версия ( 0.3.1 ) плеера доступна из репозитория. Новая версия ( на момент написания топика, 0.4.0 доступна на Launchpad.net
Для других дистрибутивов
Музыкальный плеер Qmmp уже включен в большинство дистрибутивов.
Если нет, проверьте страницу загрузки с официального сайта.
А в чем, собственно, изюминка?
А изюминка в структуре кода, которую разработали авторы. Все сделано по лучшим традициям ООП, в котором плеер делится на ядро, GUI и модули. Связь между компонентами осуществляется посредством некоторого API. Конкретная реализация компонента не влияет на остальную часть плеера. Это дает возможность, к примеру, переписать GUI без необходимости переписывать остальную часть плеера.
Поддержка форматов реализована в виде модулей. В дальнейшем, для поддержки другого формата нужно всего лишь реализовать API ядра для проигрывания файла.
Все дополнительные функции, такие как трей, тексты и обложки песен, скробер и т.п., реализованы также в виде модулей. Хорошо продуманный API ядра дает широкие возможности для реализации вашей затеи в виде модуля.
А я не программист. И что?
С точки зрения простого пользователя, все равно, как реализован код. Главное, чтобы он работал. Но могу сказать, что с такой структурой кода, плеер прост в поддержке и доработке. Многие программисты, относительно малыми усилиями, смогут внести свою лепту в разработку плеера. Им не нужно будет изучать строение программы, ее исходный код и т.п… Достаточно просто воспользоваться API, которое предоставляет ядро. Это дает огромный потенциал для развития программы.
И зачем это все написано?
Целей у этого топика несколько. Во-первых, хочу познакомить сообщество с таким плеером. Во-вторых, этот плеер — яркий пример действительно качественной структуры программы. А в-третьих, я думаю, авторам программы не помешает лишняя помощь по проекту, и не только программированием.
Послесловие
Отношение к этому проекту я никакого не имею. С авторами не знаком, и никакой выгоды от этого топика не имею. Все вышесказанное — мое мнение, которое не претендует на объективность. Как говорится, о вкусах не спорят.
UPD. Обновил секцию "Интерфейс". Спасибо харбраюзеру dexon за наводку.