Portál AbcLinuxu, 6. května 2025 11:32

Dotaz: Problém s Qt - získání ID3 tagů z mptrojek

skunkOS avatar 16.7.2011 20:24 skunkOS | skóre: 27 | blog: Tak nějak
Problém s Qt - získání ID3 tagů z mptrojek
Přečteno: 409×
Odpovědět | Admin
Ahoj, mám tento kód.

http://pastebin.com/r4z0cLms

Jenže nefunguje. Při průběhu druhého cyklu foreach se sice to treeplaylist (Qtreewidget) přidávají postupně prvky...jenže v polích s indexy 1 a 2 [<< metaData.value("ARTIST") << metaData.value("DATE")] jsou prázdné řetězce.

Vůbec si nevím rady.

Dík za pomoc.
http://martinrotter.github.io

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

skunkOS avatar 16.7.2011 21:39 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Odpovědět | | Sbalit | Link | Blokovat | Admin
vyřešeno
http://martinrotter.github.io
mirec avatar 17.7.2011 16:22 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Získavať dáta z Phonon-u nie je práve ideálne. Mám dosť skúseností s id3 (a inými) tagmi a pri phonone som sa stretol s dosť divným správaním kedy nie všetky backendy boli schopné dodávať informácie pred spustením prehrávania súboru (príkladom buď VLC). V aplikáciách, ktoré som robil využívam taglib, ktorý má pekné rozhranie (inšpirované Qt) a funguje veľmi veľmi rýchlo. Pozor ale pri ID3 sa nedá spoliehať na slovenskú / českú diakritiku, videl som tam rôzne prasačiny ako napr. u id3v.2 podporujúcom unicode stringy označené ako latin1 s kódovaním cp-1250. Takéto chuťovky som riešil pomocou detekcie (enca) s fallbackom podľa regionálneho nastavenia klienta. Nie je to síce na 100% účinné ale tých pár znakov v id3 nie je dostatočná vzorka na takmer optimálne výsledky heuristiky.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
skunkOS avatar 17.7.2011 18:49 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
díky - to vypadá skvěle ta knihovnička cos doporučil...jak bych měl postupovat v případě čeckejch tagů?
http://martinrotter.github.io
mirec avatar 17.7.2011 19:50 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Treba nastaviť string handler (TagLib::ID3v1::Tag::setStringHandler), vo vlastnom handleri preťažiť metódu parse, vyzerá to (bez enca) asi takto:
TagLib::String ID3v1TagDecoder::parse(const TagLib::ByteVector &data) const {
        QTextCodec *codec = QTextCodec::codecForName('windows-1250');
        QString text = codec->toUnicode(data.data(), data.size());
        return QStringToTString(text);
}
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
skunkOS avatar 17.7.2011 20:31 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Vypadá to schůdně. Díky.
http://martinrotter.github.io
skunkOS avatar 18.7.2011 06:53 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Hele ještě dotaz. Nainstaloval jsem taglib (http://www.archlinux.org/packages/extra/i686/taglib/).

Vytvořil jsem v QtCreatoru novej testovací projekt a použil example z instalačky. Inkludoval jsem takto

http://pastebin.com/T1whaB4Y

A podle zvýrazňovače syntaxe se soubory skutečně najdou. Jenže při kompilaci vyskočí u každé použité metody z té knihovny chyba (error: undefined reference to `TagLib::String::String(char const*, TagLib::String::Type)')

Takhle 3rd-party knihovny sem ještě moc nepoužíval, tak nevím, jak ten projekt případně nastavit. Google jsem zkoušel, ale ty rady nepomohly.
http://martinrotter.github.io
skunkOS avatar 18.7.2011 08:15 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Tak v linuxu už vše běží. Teď ještě windows. Použil jsem tento návod na sestavení TagLib ze zdrojáků.

http://www.joelverhagen.com/blog/2010/11/how-to-compile-taglib-on-windows/

Mám teda sestavenej TagLib.

Ale teď kam ty zdrojáky a knihovny (*.a, *.dll) zkopírovat a jak nastavit projekt v QtCreatoru, aby vše fungovalo?? Prosím, poraďte.

Díky.
http://martinrotter.github.io
18.7.2011 10:45 Roman Došek | skóre: 17 | blog: flare
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Knihovny stačí zkopírovat třeba do adresáře libs v projektu a pak do projekt souboru přidáš řádek:

LIBS += -L$$IN_PWD/libs -lnazev1 -lnazev2

Např. když máš název knihovny libtaglib.a nebo libtaglib.dll, tak tam bude

LIBS += -L$$IN_PWD/libs -ltaglib
skunkOS avatar 18.7.2011 11:19 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
díky, pomohlo
http://martinrotter.github.io
skunkOS avatar 18.7.2011 11:35 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
A při debugování vše skončí s tím že aplikace skončila s hodnotou 0. Ikdyž dám breakpoint na začátek mainu. Past vedle pasti.
http://martinrotter.github.io
skunkOS avatar 18.7.2011 11:29 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
další problém, už skutečně vše, běží......programy s taglibem se dají zkompilovat i spustit.

Jenže zkusil jsem například v těch Examples co maj ukázku na čtení tagu z empetrojky.

V linuxu to funguje. Ale ve windows ten program nic nevypíše. Ani třeba když dám na začátek mainu nějakej cout.
http://martinrotter.github.io
Řešení 1× (skunkOS (tazatel))
18.7.2011 12:26 Roman Došek | skóre: 17 | blog: flare
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Můžeš někam hodit archív s celým projektem, přesně jak to zkoušíš?
skunkOS avatar 18.7.2011 12:31 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
jasně

tady je qt projekt

http://www.sendspace.com/file/zko17k
http://martinrotter.github.io
skunkOS avatar 18.7.2011 12:32 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
knihovny snad máš, pokud ne, tak pošlu taky
http://martinrotter.github.io
18.7.2011 12:34 Roman Došek | skóre: 17 | blog: flare
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Právěže ne, proto jsem to chtěl celé :) Navíc...může být problém i v těch knihovnách, i když je to málo pravděpodobné
skunkOS avatar 18.7.2011 12:51 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Tak tady máš i celej ten balik - zdrojaky a knihovnu. Knihovna je v podsložce taglib-release a v nastavení projektu vede cesta do C:\taglib.........takže do C: nebo si to třeba uprav

No a možná by bylo lepší icq - 394612090

http://www.sendspace.com/file/enldoz
http://martinrotter.github.io
skunkOS avatar 18.7.2011 12:55 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
NOVINKA, zkusil sem přesměrovat výstup z programu do souboru a ten funguje

viz pokus

ZKOUSIM VYPAAAT ******************** "abcd.mp3" ******************** -- TAG -- title - "Far Behind" artist - "Eddie Vedder" album - ""Into The Wild" Soundtrack" year - "2007" comment - "" track - "3" genre - "Folk/Rock" -- AUDIO -- bitrate - 320 sample rate - 44100 channels - 2 length - 2:15

Ale výstup na konzolu furt ne.
http://martinrotter.github.io
18.7.2011 13:23 Roman Došek | skóre: 17 | blog: flare
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Nějak ti v tom nefunguje cout, jinak samotný program je v pořádku.
skunkOS avatar 18.7.2011 13:26 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
NO Právě. O ten cout mi de. TO je to jediný, co řeším.

Chci zjistit proč nejde, ale sem v koncích jaksi.
http://martinrotter.github.io
mess avatar 18.7.2011 14:30 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Pořád je tady cstdio a printf. Aspoň zkus, jestli to taky nefunguje :-)
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
skunkOS avatar 18.7.2011 14:40 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Nefunguje.
http://martinrotter.github.io
skunkOS avatar 18.7.2011 17:44 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: Problém s Qt - získání ID3 tagů z mptrojek
Jéééé jsem ocas. Nakonec stačilo přidat do .pro souboru CONFIG += console.
http://martinrotter.github.io

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.