Ahoj,
před časem jsem si pro svoje potřeby napsal hudební přehrávač v PySide (Python + Qt), který používám v autě na tabletu s Windows 7. Problém je v tom, že použitý backend Phonon je ve spojení s DirectShow extrémně nespolehlivý a jsem stále zaseknutý na starých Qt 4 knihovnách. Nezdá se, že by projekt PySide někdy v dohledné době podporu Qt 5 přidal. Kromě toho bych rád můj púřehrávač portoval i na Android a Ubuntu Touch.
Zkrátka situace dospěla do bodu, kdy je nutné přejít z Pythonu na C++. A to je problém, protože C++ skoro vůbec neznám. Není problém implementovat valnou část funkcí v JavaScriptu přímo v QML. Moje původní idea byla, že celý přehrávač bude jenom QML a jediné, na co použiju C++ bude načtení souborů na disku (to přímo z QML nelze). Celé by klaplo nebý toho, že QML objek pro přehrávání MediaPlayer a jeho metaData nefunguje ve Windows a na Androidu jenom omezeně. Načíst vešekrý možný tagy a podle nich vyhledávat v kolekci je přitom základní věc, kterou od přehrávače chci a proč si programuju svůj vlastní.
V Pythonu jsem používal knihovnu MediaInfo, která toho umí načíst opravdu hodně. Bohužel neumí zapisovat dp tagů. Bez toho bych se lehce obešel, ale nenašel jsem nikde verzi pro Android. Takže bych si jí musel nejspíš sám zkompilovat. A když už kompilovat nějakou céčkovou knihovnu, tak proč ne třeba TagLib, která umí všechno. Prostě váhám a nemám dost informací k tomu, abych se mohl rozhodnout. :-)
Za prvé mi není úplně jasný, jaký je z mého pohledu rozdíle mezi dynamickou a statiskou knihovnou. Předpokládám, že pokud používám dynamickou, stačí mi už předem zkompilovaná .dll knihovna (jako jsem jí používal v Pythonu). TagLib je distribuovaná jenom ve formě zdrojáku, takže si jí musím sám zkompilovat, ale to by asi neměl být výrazný problém. Kdybych chtěl použít knihovnu staticky, je to dobrý nápad? Má to pro mě nějaké výhody nebo naopak nevýhody?
Co všechno potřebuju k tomu, abych knihovnu mohl používat? Stačí .dll nebo k tomu potřebuju i hlavičkový soubor? Co je zač soubor s příponou .a? Jak se liší v .cpp souboru použití dynamický a statický knihovny?
Budu rád za odkaz na nějaký text, kde to je vysvětlené. Bohužel skoro všechno, co je na internetu, se týká obyčejného C. Jako IDE používám QtCreator, ale to by asi nemělo hrát zásadní vliv.
Omlouvám se za tolik omáčky okolo. Ale chtěl jsem vysvětlit, že programovat umím a nepředstavuju si to jako Hurvínek válku. Akorát neznám C++ a nechci zabíhat víc do hloubky než je nutný. Většinu věcí chci dělat v JavaScriptu a v C++ pouze načíst adresářový strom (to už mám implementované) a potom soubor po souboru načtat tagy a ukládat je do databáze (to už bude zase v QML přes QSql).