最近需要用windows下的qt寫一些界 面,裡面用到qt的多媒體架構phonon,我用的是qt- 4.5.3。從官網上下載下傳安裝的qt本身并沒有把phonon內建進去,隻是提供了源碼。自己在編譯phonon時遇到一些問題,網上相關讨論不少,但很 少是關于windows下phonon的編譯的,是以我在這把我編譯phonon的過程系統的描述下,希 望能幫到大家。
假設qt的安裝目錄是xx
一、編譯安裝phonon
1 . 此時用xx/qt/src/phonon/phonon.pro工程,編輯phonon.pro
PHONON_DIR=../3rdparty/phonon/phonon
2 . 編譯出debug和release版本,此時會在xx/qt/lib下生成 libphonon4.a,libphonond4.a,phonon4.dll,phonond4.dll,在xx/qt/bin下會生成 phonon4.dll,phonond4.dll。
(注意:在編譯某些qt自帶的demo和example時,需要的庫名字是libphonon.a,你隻要改下名 字就行了,把上述提到的4個檔案中的4去掉) //注最好是複制一份。
二、編譯生成phonon_backend (xx/qt/plugins)
1 . 去KDE svn上下載下傳kdewin32 package
http://websvn.kde.org/trunk/kdesupport/kdewin/
svn://anonsvn.kde.org/home/kde/trunk/kdesupport/kdewin //自己去下載下傳window下的svn吧,這裡找 http://subversion.apache.org/packages.html
下載下傳指令svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport/kdewin
2 . 拷貝kdewin/include/mingw/comdef.h 到kdewin/include/directx/檔案夾下
3 . 到xx/qt/src目錄下,編輯src/plugins/phonon/ds9/ds9.pro,加入下面一行INCLUDEPATH+=<your directx path>
4 . 這時使用qt/src/plugins/phonon/phonon.pro 工程檔案,并修改此檔案
SUBDIRS = ds9
5 .删除檔案videorenderer_vmr9.cpp 第172行
SetAspectRatioMode(VMR9ARMODE_NONE);
6 .同第一步驟中的第二條。這時會在xx/qt/plugins下生成phonon_backend 目錄。//還是編輯qt/src/plugins/phonon/phonon.pro 編譯成功後,是生成插件,讓你選擇可執行檔案的框,但不一定會在plugins下生成,可能是pro裡的環境變量未設定,你要自己指定。
#PHONON_DS9_DIR = $$QT_SOURCE_TREE/src/3rdparty/phonon/ds9
PHONON_DS9_DIR = ../../../3rdparty/phonon/ds9
大功告成,可以測試下qt自帶的mediaplayer demo。
同時感謝網友的無私共享,是以我将此文釋出,希望遇到這篇文章的同志可以少走彎路。
轉帖請注明 http://hi.baidu.com/armlinuxhouse/blog/item/0eb3f2b5f41cb3f831add19a.html