Píšu vlastní audio přehrávač

Píšu vlastní audio přehrávač
« kdy: 31. 03. 2010, 23:28:20 »
Ahoj,

protože jsem nespokojený v podstatě se všemi přehrávači hudby, které existují, rozhodl jsem se vytvořit vlastní. Je to hodně velký úkol, vzhledem k tomu, jaký jsem programátor, ale člověk si musí dávat vysoké cíle.

Můj přehrávač má být pouze přehrávač, žádný nakupování hudby, ripování CD atd. Má mít knihovnu, dynamický playlisty, frontu na přehrávání a být pokud možno rozumně rychlý.

Kdy jsem se o to už pokusil pomocí PyGTK, ale ztroskotal jsem na tom, že jsem nedokázal v rozumné době vypsat do GUI obsah větší knihovny. Jinak jsem naprogramoval celkem rozumně prohledání adresáře s hudbou, nasypání do databáze, filtrování písniček z databáze a přehrávání (pomocí MPlayeru).

Nyní bych to zkusil rád pomocí PyQt4 a Phononu. V instalaci je nějaký jednoduchý ukázkový přehrávač, takže bych neměl mít problém se zprovozněním přehrávání. Chci se ale zeptat na pár věcí, u kterých si nejsem jistý, jak je udělat a jestli je vůbec moje představa reálná.

1) Jak na databázi? PyQt4 už přešel na Python 3, ale zdá se, že Pysqlite je zatím maximálně pro verzi 2.6. Našel jsem ale modul SqlAlchemy a ten funguje dobře. Navíc by mělo jít u větší kolekce nahradit SQLite PostgreSQL. Je tohle dobrá volba?

2) GUI přehrávače by mělo být zcela modulární poskládané z komponent. Komponenty by měly jít doinstalovat. Zkrátka něco na způsob toho, jak to umí foobar2000. Je mi jasný, že bude třeba vytvořit nějaký API, kterým si budou mezi sebou předávat informace (co vyfiltrovat, co je v playlistu, co hraje, co zobrazit atd.) Rád bych, aby mohli i další vývojáři doprogramovat své moduly do GUI. Ale hlavně vůbec nevím, jestli jde například prohledat nějaký adresář a načíst všechny *.py moduly. Tohle je věc, ve které nejvíc tápu. Navíc bych rád, aby program fungoval i ve Windows pomocí py2exe a tam už jsem úplně mimo.

3) Viděl bych to tak, že layout GUI bude definovaný pomocí XML souboru, něco podobnýho, jako to má Songbird.

4) Co na to říkáte? Je to blbost a mám se na to vykašlat nebo to má naději?
« Poslední změna: 01. 04. 2010, 23:29:53 od Petr Krčmář »


D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Audio přehrávač
« Odpověď #1 kdy: 01. 04. 2010, 12:10:39 »
Naději má podle mě každý dobrý a dobře realizovaný nápad  :)

Napadla mě, ale spíš otázka proč Python. Já bych osobně postupoval asi tím způsobem, že bych napsal základ aplikace v C, nebo C++ ( v případě QT) a pro moduly vytvořil rozhraní co pokud možno nejvíce kompatibilní s C, nebo alespoň v C++. Podle mého mínění je potom takové API o dost lépe portovatelné do většiny dalších programovacích jazyků (včetně Pythonu, ale nabízí se třeba i LUA, PHP, atpd... ). Což podle mě o dost rozšiřuje skupinu lidí kteří mohou moduly pro daný projekt vytvářet (...tedy mají-li zájem).

   

Re: Audio přehrávač
« Odpověď #2 kdy: 01. 04. 2010, 13:21:48 »
Na to proč Python, je poměrně jednoduchá odpověď. Umím jenom Python, PHP a malinko Javu. Program nemusím kompilovat a dobře si mi v tom jazyku dělá. Při mém pokusu s PyGTK jsem přehrávač s knihovnou naprogramoval za jeden den. Akorát jsem předtím musel pár dní studovat, jak zprovoznit multithreading ve Windows s GTK+.

V Pythonu lze používat i C/C++ moduly, nedávno tu na to byl na Rootu dokonce návod.

V PyQt bude v podstatě napsané pouze GUI, celý systém přehrávání a práce s multimédii bude fungovat přes Phonon, SQLite a knihovnu MediaInfo. Jinak by byl ten program značně pomalý, což je přesný opak toho, co chci.

Ještě se zeptám: jaký by byl ideální formát pro soubor popisující layout (GUI) přehrávače? Myslel jsem na XML, které by popisovalo rozmístění a parametry komponent. Je pro tohle XML vhodné? Jak s ním vůbec ideálně pracovat?

Zkrátka chtěl bych mít všechno promyšlené než začnu, abych se potom zbytečně nedostal do slepé uličky. Což se mi ale nakonec stejně stane. :-)
« Poslední změna: 04. 04. 2010, 14:21:30 od Vláďa J »