Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров12K
Представляю 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 за наводку.
Теги:
Хабы:
Всего голосов 69: ↑52 и ↓17+35
Комментарии80

Публикации

Истории

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань