QT MPlayer移植
本文介紹QT MPlayer移植,MPlayer是一款開源多媒體播放器,以GNU通用公共許可證發(fā)布。此款軟件可在各主流作業(yè)系統(tǒng)使用,例如Linux和其他類Unix系統(tǒng)、微軟的視窗系統(tǒng)及蘋果電腦的Mac OS X系統(tǒng)。MPlayer是建基于命令行界面,在各作業(yè)系統(tǒng)可選擇安裝不同的圖形界面。
一、 首先要建立交叉編譯環(huán)境
首先搭建交叉編譯環(huán)境
i. 將arm-linux-gcc-4.4.3.tar.gz解壓到一個(gè)空文件夾中
#tar zvxf arm-linux-gcc-4.4.3.tar.gz –C / (C的后面有空格)
改變環(huán)境
- #gedit /root/.bashrc
將路徑改為
- /opt/FriendlyARM/toolschain/4.4.3/bin
- expotr PATH=$PATH:/ opt/FriendlyARM/toolschain/4.4.3/bin
上面兩行是同一條命令!保存退出之后,要重啟一下機(jī)子命令如下
- #reboot
重啟之后查看是否編譯成功
- # arm-linux-gcc –v
在最后一行如果出現(xiàn)了版本號(hào)就是編譯成功了
修改編譯調(diào)用的庫鏈接
- # strings /usr/lib/libstdc++.so.6 | grep GLIBC
結(jié)果的最后一句話:
- GLIBCXX_3.4 沒有GLIBCXX_3.4.9
- # ls -l /usr/lib/libstdc++.so.6
結(jié)果鏈接(快捷方式)為
- /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8
- # rm –rf /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.8
- #ls -l /usr/lib/libstdc++.so.6
出現(xiàn):/usr/lib/libstdc++.so.6:沒有那個(gè)文件或目錄
把(資源)libstdc++.so.6.0.10放入/usr/lib中
重新做鏈接
- #ln -s /usr/lib/libstdc++.so.6.0.10 /usr/lib/libstdc++.so.6
二、QT 安裝
1、 下載
- qt-sdk-linux-x86-opensource-2010.05.1.bin
2、 增加權(quán)限
- Chmod 777 qt-sdk-linux-x86-opensource-2010.05.1.bin
3、 安裝QT
- ./ qt-sdk-linux-x86-opensource-2010.05.1.bin
4、 升級(jí)Linux5的fontconf庫
- 將fontconf-2.3.0.tar.gz放入/root/qt中
- #cd fontconf
- #./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man
- #make
- #make install
5、 升級(jí)freetype庫
- 將freetype-2.3.0.tar.gz放入/usr/local中
- #cd /usr/local
- #tar zxvf freetype-2.3.0.tar.gz
- #./configure
- #make
- #make install
六、 改變環(huán)境變量
- vim ~/.bash_profile
添加如下:
- QTDIR=/opt/qtsdk-2010.05/qt(安裝路徑一定要寫對)
- QTLIB=$QTDIR/lib
- QTINC=$QTDIR/include
- PATH=$QTDIR/bin:$PATH
保存退出之后
- #source ~/.bash_profile
- #which qmake
查看顯示如果結(jié)果是/opt/qtsdk-2010.05/qt/bin/qmake,表示設(shè)置正確
#p#
七、 把QT的庫路徑加入so的搜索路徑.
在調(diào)試QT程序時(shí),QTCreator是在后臺(tái)調(diào)用gdb來調(diào)試,因此必須要系統(tǒng)知道從哪里找QT的動(dòng)態(tài)庫.一般比較好的辦法是將其加入到系統(tǒng)so的路徑,方法是修改/etc/ld.so.conf
- #vi /etc/ld.so.conf
把/opt/qtsdk-2010.05/qt/lib作為一行寫入這個(gè)文件.存盤后執(zhí)行命令
- # ldconfig //讓路徑生效
可以使用如下命令檢查輸出結(jié)果是否正確:
- #env |grep QT
查看配置的四項(xiàng)內(nèi)容是否掙錢
a) 將虛擬機(jī)漢化一下
打開漢化包有五個(gè)QM文件
1.將這些文件復(fù)制到QT安裝目錄下的share/qtcreator/translations和qt/translations文件夾,覆蓋(overwrite)原來的內(nèi)容
2.重新啟動(dòng)qt,就完成了漢化
如果漢化不成功,可以選擇qt的toos->options,在環(huán)境配置窗口中,選擇左側(cè)的enviroment,在右側(cè)找到language,選擇其中的chinese。
b) 將虛擬機(jī)重啟(reboot)或者注銷一下
c) 檢查QtCreator是否能找到Qmake
在主菜單tools-->Options-->Qt4.QtVersion,如果Auto-Dected能找到QT4.7的qmake則能正常編譯.
d) 可以直接在Xshell中運(yùn)行qt!方法是在命令行輸入:
- #cd /opt/qtsdk-2010.05/bin (這樣可以直接在級(jí)別3下運(yùn)行QT,速度快!省內(nèi)存)
- #./qtcreator
八、運(yùn)行QT并創(chuàng)建一個(gè)項(xiàng)目
環(huán)境安裝好后,就可以創(chuàng)建一個(gè)QT的應(yīng)用程序.
1.用QtCreator程序向?qū)撞骄蛣?chuàng)建一個(gè)項(xiàng)目,而以前則是使用分散的工具來創(chuàng)建.
1.1選擇主菜單File->newfileorproject->Qt4GUIApplication創(chuàng)建一個(gè)標(biāo)準(zhǔn)GUI程序.如下圖↓↓↓
1.2點(diǎn)擊下方的choose…設(shè)置項(xiàng)目目錄,即可快速建立一個(gè)項(xiàng)目
1.3可以直接主界面的運(yùn)行按鍵來運(yùn)行QT的程序。也能按調(diào)試軟件來進(jìn)行調(diào)試
1.3.1圖形界面的一些控件
1、使用widget存放MP4播放時(shí)的視頻位置
2、horizontal Slider控件來調(diào)節(jié)視頻的進(jìn)度!
3、再者就是push button 了
1.3.2按鍵的程序連接使用
選點(diǎn)按鍵右鍵轉(zhuǎn)到槽(go to slot)
1.4 無程序調(diào)試運(yùn)行
當(dāng)界面做好了之后,點(diǎn)擊運(yùn)行按鍵
1.5 圖形界面出來之后就可以給按鍵增加功能了右鍵go to slot 進(jìn)入程序首先在的頭文件中添加一個(gè)庫<qprocess>,在主窗口函數(shù)中添加指針
- QProcess *process;
然后在源文件MainWindow.cpp文件中的主窗口函數(shù)中添加一
線程的實(shí)例化 process=new QProcess();
然后開始編程
(1)開始播放的程序
- void MainWindow::on_start_clicked()
- {
- QString commend="/root/qt/mplayer "; // -slave -quiet -ac mad " ;
- QString file="/root/qt/shi.avi ";
- QString canshu=" -slave -quiet -ac mad -wid "+QString::number(ui->widget->winId());
- process->setProcessChannelMode(QProcess::MergedChannels);
- process->start(commend+file+canshu);
- }
(2)視頻暫停的程序
- void MainWindow::on_stop_clicked()
- {
- if(isplaying){
- process->write("pause\n");
- isplaying=false;
- }
- else{
- process->write("pause\n");
- isplaying=true;
- }
- }
(3)程序停止播放的程序
- void MainWindow::on_exit_clicked()
- {
- process->write("quit\n");
- }
1.6 開始調(diào)試程序
點(diǎn)擊run 按鈕然后等待構(gòu)建,如果出錯(cuò)修改,沒錯(cuò)的話點(diǎn)擊試試
九、將在PC機(jī)上面的播放器修改為可在開發(fā)板上面運(yùn)行的QT界面
1. 先要將4.6.3的QT編譯包放到指定的位置/usr/local/Trolltech文件夾中,如果沒有就創(chuàng)建
2. 進(jìn)入4.7.1的QT開發(fā)環(huán)境打開要編譯的項(xiàng)目,選擇 項(xiàng)目 圖標(biāo),然后點(diǎn)擊 概要第二行做好一個(gè)管理(manege)按鍵
3. 出現(xiàn)如下窗口,點(diǎn)擊Qt4右邊的藍(lán)色加號(hào)添加瀏覽
選擇/usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin中的qmake 打開,會(huì)出現(xiàn)如下圖像
如果沒有出現(xiàn)√就點(diǎn)擊右邊的重新構(gòu)建,然后點(diǎn)擊應(yīng)用確認(rèn)
4. 重新回到了項(xiàng)目頁面
然后選擇管理前面的小黑色三角,選擇4.6.3,拖動(dòng)鼠標(biāo)向下到 構(gòu)建環(huán)境變量一行點(diǎn)擊詳細(xì),找到PATH、QTDIR、QTLIB、QTINC將之修改為4.6.3所在的位置
使用 系統(tǒng)環(huán)境變量 和
設(shè)置 PATH 為
- /usr/local/Trolltech/QtEmbedded-4.6.3-arm/bin:/opt/FriendlyARM/toolschain/4.4.3/bin:/opt/qtsdk-2010.05/qt/bin:/usr/lib/
- qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:
- /usr/bin:/usr/X11R6/bin:/opt/FriendlyARM/toolschain/4.4.3/bin:/root/bin(紅色的是添加的)
設(shè)置 QTDIR 為
- /usr/local/Trolltech/QtEmbedded-4.6.3-arm
設(shè)置 QTINC 為
- /usr/local/Trolltech/QtEmbedded-4.6.3-arm/include
設(shè)置 QTLIB 為
- /usr/local/Trolltech/QtEmbedded-4.6.3-arm/lib
與此同時(shí)還要將生成文件的位置找好但別使用默認(rèn)的選定一個(gè)!注:我命名的是MP7文件夾
然后點(diǎn)擊run 按鈕然后等待構(gòu)建,又警告沒事的,只要不是紅色的感嘆號(hào)就行其他的一切都不重要即使出現(xiàn)這個(gè)也沒事的!然后進(jìn)入構(gòu)建目錄找到可執(zhí)行文件拷到開發(fā)板上。
十、在開發(fā)板上面
1. 將mplayer test.wmv MP7三個(gè)程序復(fù)制到開發(fā)板的和PC機(jī)上運(yùn)行的相同的位置下注:我命名的叫MP7的QT
2. 修改mplayer MP7的權(quán)限,使之可執(zhí)行
3. 將下列配置內(nèi)容加入到開發(fā)板的/etc/profile文件。建議采用粘貼方式。否則輸入太慢!
- #configure for tslib
- export TSLIB_ROOT=/usr/local
- export TSLIB_TSDEVICE=/dev/input/event0
- export TSLIB_CALIBFILE=/etc/pointercal
- export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
- export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
- export TSLIB_CONSOLEDEVICE=none
- export TSLIB_FBDEVICE=/dev/fb0
- export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
- #configure for qt
- export QTDIR=/usr/local/Trolltech/QtEmbedded-4.6.3-arm
- export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
- export PATH=$QTDIR/bin:$PATH
- export QWS_MOUSE_PROTO=tslib:/dev/input/event0
4. 將/etc/init.d/rcS中的如下行(倒數(shù)第三行)注釋掉。即不啟動(dòng)默認(rèn)界面!
- #/bin/qtopia &
5. 重新啟動(dòng)開發(fā)板后執(zhí)行如下命令
- ./MP7 -qws
以上內(nèi)容便是QT MPlayer移植,希望能幫助到你!
【編輯推薦】
基于Qt Web瀏覽器設(shè)計(jì)與實(shí)現(xiàn)
解析Qt 4.3.5 X11 交叉編譯平臺(tái)的搭建、移植