Труднощі з phonon

Відео: TAG: новонароджені - ТРУДНОЩІ ПЕРШОГО МІСЯЦЯ! MNOGOMAMA

Труднощі з Phonon
Я не хочу повторювати документацію і приводити якісь азбучні приклади по тому, як через Phonon програти mp3-файл. Я хочу розповісти про труднощі, з якими ви зіткнетеся, вирішивши використовувати Phonon в своїй програмі. Розповісти, але не вирішити - вирішувати доведеться вам своєю працею.

Труднощі перша - збірка програм, що використовують Phonon, в Linux. Зазвичай Phonon встановлюється в системі як частина KDE. Вірніше, плагіни-бекенд йдуть як плагіни KDE, а сам Phonon виглядає як окрема бібліотека. Однак Phonon може бути зібраний і «всередині» Qt, оскільки входить до його складу. При цьому, такий Phonon буде шукати бекенд в каталозі плагінів Qt, а не в каталозі плагінів KDE4. Такий стан справ цілком природно, коли в системі немає KDE4, проте є Qt. Як правило, в системі «з коробки» або «зі сховища» Qt зібрана без Phonon, а Phonon встановлюється окремо і абсолютно чудово підхоплюється системою збирання при звичайному наборі команд:
qmake makemake install

Інакше ж збирачеві пакета або користувачеві доведеться потрудитися, створюючи символічні посилання на Phonon і його бекенд, щоб «виправити» шляху.

Труднощі друга - збірка бекенд Direct Show в Windows під MinGW / GCC. Вважається, що це неможливо, оскільки GCC погано поєднується з деякими заголовками з SDK, або навпаки - вони з ним (залежить від того, з якої точки зору дивитися). Пікантності положенню додає той факт, що саме зібрана MinGW-версія Qt і поширюється Nokia, причому без Phonon. Умільці навчилися компілювати горезвісний бекенд і під MinGw, короткий опис процесу можна прочитати за посиланням: https://qtcentre.org/wiki/index.php?title=Building_the_Phonon_backend_plugin_on_Windows_using_MinGW. Ну, а якщо ваша мета - створення сайтів в Москві (https://newdesignlab.ru/services/sozdanie-saitov.html) по збірці Direct Show, то раджу звернутися до досвідчених фахівців.

Однак рецепт цей теж не можна вважати універсальним. Увага, тут ми входимо в область танців з бубнами, горлового співу і так далі. Опишу свій досвід. Сенс хитрості зводиться до того, що потрібно використовувати заголовки DirectX з пакета kdewin32. Беремо пакет з SVN KDE:



svn checkout svn: //anonsvn.kde.org/home/kde/trunk/kdesupport/kdewin32

Розпаковуємо його, копіюємо файл comdef.h з kdewin32 / include / mingw в kdewin32 / include / directx. Потім в исходниках Qt міняємо початок файлу


src / plugins / phonon / ds9 / ds9.pro на ось таке: DESTDIR = $$ QT _ BUILD _ TREE / plugins / phonon _ backend QT + = phononwin32:! win32-g ++ * :! wince *: contains (QT _ CONFIG , opengl): LIBS + = opengl32.libwin32:! win32-g ++ * :! wince *: LIBS + = gdi32.lib! win32-g ++ *: win32-msvc2005: DEFINES + = _ CRT _ SECURE _ NO _ WARNINGS! win32- g ++ *: LIBS + = strmiids.lib Dmoguids.lib uuid.lib msdmo.lib win32-g ++ *: contains (QT _ CONFIG, opengl): LIBS + = -lopengl32 win32-g ++ *: LIBS + = -lgdi32 -lstrmiids - lDmoguids -luuid-lmsdmo -lole32 -loleaut32TARGET = phonon _ ds9DEFINES + = pHONON _ MAKE _ QT _ ONLY _ BACKENDPHONON _ DS9 _ DIR = $$ QT _ SOURCE _ TREE / src / 3rdparty / phonon / ds9INCLUDEPATH + = ШЛЯХ _ До _ kdewin32 / include / directx

Внизу замість «ШЛЯХ _ До _ kdewin32» підставте свій справжній шлях. Після цього нібито має збиратися по qmake / make, але не компілюється. Заголовки начебто виправлені, проте все одно не ті. Виявляється, не вистачає опису декількох структур з файлу dvdmedia.h, а цей файл зі складу офіційного SDK від Microsoft, як я вже написав, з MinGW «не дружить». Як бути? На щастя, у мене виявився встановлений Perl для Windows - Strawberry Perl (strawberryperl.com). І в його склад входить - хто б міг подумати? - заточений навмисне для GCC заголовки dvdmedia.h. Він знаходиться в каталозі strawberry / c / include. Якщо у вас немає бажання качати Strawberry Perl, візьміть один лише dvdmedia.h з https://onlinedisk.ru/ file / 136831. Копіюємо dvdmedia.h в підкаталог include каталогу MinGw. Після цього компілюємо Phonon і його бекенд. Тепер працює! Нагадаю, що для поширення зібраної з Phonon програми треба буде скопіювати в її каталог файл phonon4.dll, а також створити підкаталог phonon_backend і помістити туди phonon_ds94.dll (береться з plugins / phonon_backend каталогу Qt).

Труднощі з Phonon

Відео: новонароджені - труднощі першого місяця від Nataly Gorbatova


Іншим, в якійсь мірі більш простим, способом використовувати Phonon в програмах для Windows є збірка Qt і ваших програм в Microsoft Visual Studio C ++. Хоча в документації Qt написано, що треба попередньо встановити ще і DirectX SDK, повозитися з установкою шляхів і запустити якийсь скрипт, в моєму випадку досить було тих заголовків файлів, які йдуть в складі MS Visual Studio 2008. Для складання Qt в цій IDE треба спочатку з сеансу, де встановлені шляхи до Visual Studio (див. ярлик на командний процесор в підміню Visual Studio в «Пуск»), запустити програму configure.exe (в исходнике Qt), щоб налаштувати исходник. Якщо вам не потрібен WebKit, раджу відключити його на рівні настройки - він компілюється дуже довго. Також можна відключити OpenGL, якщо вам він не критичний. Інакше доведеться включати в дистрибутив програми. Після настройки традиційний шлях - це запуск nmake і очікування, поки зберуться бібліотеки і приклади. Але для збірки краще не викликати nmakе, а зробити за допомогою qmake проект Visual Studio:
qmake -t vcapp ім`я qt-проекта.pro

Тоді вийде проект з розширенням vcproj, який можна завантажити в Visual Studio і скомпілювати.

Після цього ви можете збирати програми з Phonon. У Windows зручно мати дві версії Qt: одну - MinGW, а іншу - самостійно зібрану під Visual Studio. Розмежування між ними - через установку шляхів в .bat-файлах запуску командного процесора. У мене на цю справу - два ярлика запуску з різними змінними середовища (для MinGW і для Visual Studio).

Але тепер виникає остання проблема - поширення програм, зібраних в Visual Studio. Для цього потрібні файли зі складу Microsoft Visual C ++: msvcr80.dll (число залежить від версії вашої Visual Studio), msvcp80.dll і інші. Від версії до версії умови їх видимості для програми змінюються: раніше можна було просто скопіювати в каталог програми, потім треба було вказати їх розташування через виклик функції qApp-gt; addLibraryPath (), потім в певних умовах це перестало працювати - в загальному, знову окрема тема для розмови, в яку не будемо заглиблюватися (деякі подробиці можна знайти в розділі Deploying an Application on Windows документації Qt).

Але є універсальне рішення. Включайте в установник своєї програми пакет Microsoft Visual C ++ 2008 Redistributable Package (береться на сайті Microsoft) або давайте на нього посилання. Це щоб не возитися з маніфестами і тому подібним матеріалом. Після установки пакета користувачем ваша програма запуститься без всяких складнощів. Може виявитися і так, що у користувача вже встановлено цей пакет - зараз багато програм містять його разом зі своїми установниками і теж пропонують при бажанні проинсталлировать.

ІНШЕ

Ctp 5 для visual studio 2015 фото

Ctp 5 для visual studio 2015

Представники Microsoft повідомили про доступність версії 5 Community Technical Preview (CTP 5) для Visual Studio 2015.…

Ashampoo music studio 5 фото

Ashampoo music studio 5

Відео: Ashampoo Music Studio 5 key giveaway Багато користувачів ПК люблять музику і зберігають на диску папку з…

Clang і llvm - у gcc є конкурент фото

Clang і llvm - у gcc є конкурент

Відео: GCC or LLVM? Зв`язку Clang і LLVM часто згадують як заміну GCC - не зараз, але в перспективі. Що ж таке Clang і…

Visual mind 11.0.0.63 фото

Visual mind 11.0.0.63

Відео: Mind42 Review - Online Mind Mapping - Visual Mapping Review Series 2013 Напевно, багато хто з читачів, статут…

Бесіди про qt. 5: phonon фото

Бесіди про qt. 5: phonon

Відео: Qt Tutorials For BeginnersПролог Одного разу я йшов по ринку і побачив людей, схожих на індусів. Вони продавали…

Sdl + mingw = дружба! фото

Sdl + mingw = дружба!

Відео: SDL 2 Tutorial 1c [SETUP] Windows and MinGW Setup Мабуть, SDL - найпопулярніша бібліотека для створення…

Sdl: збірка за допомогою make фото

Sdl: збірка за допомогою make

Відео: C. Урок 12. Компіляція і система збирання (gcc, make)Етап 4. Складання за допомогою make Наведу мінімальний…

Установка sdl фото

Установка sdl

Відео: Tutorial: Setup SDL for Visual Studio 2012Етап 2. Python і Scons Цей етап знадобиться тільки для зборки за…

Qt 5: збірка фото

Qt 5: збірка

Відео: Qt windows. Qt запуск програми під windows. Qt cтатіческая збіркаРозповім про досвід складання Qt 5. Для цього я…

» » Труднощі з phonon