Qt編寫Mplayer前端程序?qū)嵗?/h1>
本文介紹Qt編寫Mplayer前端程序?qū)嵗Ч鰜硗诺摹>帉懸粋€自己的mplayer前端程序,根據(jù)自己的喜好設(shè)計界面。是一件很不錯的事情。
首先設(shè)計一個漂亮的界面,可以通過designer設(shè)計。
通過定義一個QProcess對象調(diào)用已編譯好的Mplayer。
- QProcess *process = new QProcess();
- process->setProcessChannelMode(QProcess::MergedChannels);
- Process->start(“mplayer –ac –mad xxxxx”);
在命令中添加 -slave 和 -quiet就可以通過命令設(shè)置Mplayer實現(xiàn)相應(yīng)的功能。在mplayer源碼中的,slave.txt中對這些命令有詳細(xì)的Process->start(“mplayer –slave –quiet –ac –mad xxxxx”);
1.暫停功能
通過如下代碼可以設(shè)置Mplayer暫停。
- process->write(“pause\n”);
執(zhí)行這段代碼的時候如果是播放狀態(tài)就會暫停,暫停狀態(tài)時就會繼續(xù)播放。
2.獲取播放文件的總時間和當(dāng)前播放進(jìn)度。
執(zhí)行下面代碼時,Mplayer將時間在標(biāo)準(zhǔn)輸出顯示。
- process->write(“get_time_pos\n”);
- process->write(“get_time_length\n”);
通過如下代碼即可讀出我們需要的信息:
- connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));
process有可讀取的信息時,發(fā)出信號,在槽函數(shù)back_message_slots()中讀取信息。
- void MPlayer::back_message_slots()
- {
- while(process->canReadLine())
- {
- QString message(process->readLine());
- //message即為讀取的信息我們可以根據(jù)需要取我們要的信息如
- //文件總時間為:ANS_LENGTH=23.00
- //當(dāng)前時間為:ANS_TIME_POSITION=23.00
- }
- }
3.快進(jìn)功能
- seek <value> [type]
- Seek to some place in the movie
- 0 is a relative seek of +/- <value> seconds (default).
- 1 is a seek to <value> % in the movie.
- 2 is a seek to an absolute position of <value> seconds.
下面代碼即可實現(xiàn)快進(jìn)功能:
- process->write(“seek ** 1\n”);
4.音量調(diào)節(jié)
- volume <value> [abs]
- Increase/decrease volume or set it to <value> if [abs] is nonzero.
- 下面代碼即可實現(xiàn)快進(jìn)功能:
- Process->write(“volume -1\n”); //音量減小
- Process->write(“volume +1\n”); //音量增加
5.靜音功能
- mute [value]
- Toggle sound output muting or set it to [value] when [value] >= 0
- (1 == on, 0 == off).
- 下面代碼即可實現(xiàn)快進(jìn)功能:
- process->write(“mute 0\n”); //開啟靜音
- process->write(“mute 1\n”); //關(guān)閉靜音
6.定位視頻窗口
通過上面的代碼基本功能實現(xiàn)了,可是播放視頻的時候發(fā)現(xiàn)又彈出一個窗口。并沒有出現(xiàn)在我們的窗口里。
如下代碼即可時間窗口的定位。
- process->start(common);
紅色部分實現(xiàn)串口的定位。Widget是一個QWidget對象。通過winId可以獲得一個數(shù)字,-wid既將視頻輸出定位到widget窗體部件中。
注意:-wid參數(shù)只在X11、directX和OpenGL中適用。
下面便是效果圖:
小結(jié):Qt編寫Mplayer前端程序?qū)嵗齼?nèi)容介紹完了,是不是效果很好呀?這里只是實現(xiàn)了一些基本的功能,如果需要的話可以參考Mplayer中文檔添加需要的功能。如果您喜歡這篇文章,可以加華清遠(yuǎn)見老師為好友,單擊以下鏈接即可:http://student.csdn.net/invite.php?u=45153&c=8af704eb3cd8e773