Pull to refresh

Встречайте, QMMP — музыкальный плеер

Reading time2 min
Views12K
Представляю wimamp-подобный музыкальный плеер — Qmmp, разработанный нашими соотечественниками на Qt под лицензией GPLv2. Хотя на первый взгляд ничего особенного нет, я, как программист, вижу в нем большой потенциал. В этом топике я бегло пробегусь по его возможностям, а так же распишу, в чем же его особенность.


Интерфейс


Как уже было сказано, плеер winamp-подобный, с полной поддержкой скинов для winamp 2.x. Похож на XMMS и Audacious. Интерфейс стандартен для плееров этого типа: Окно управления, эквалайзер и плейлист.

image

Существуют проекты других интерфейсов для 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 за наводку.
Tags:
Hubs:
+35
Comments80

Articles