Qt編寫Mplayer前端程序實例
本文介紹Qt編寫Mplayer前端程序實例,效果出來挺炫的。編寫一個自己的mplayer前端程序,根據自己的喜好設計界面。是一件很不錯的事情。
首先設計一個漂亮的界面,可以通過designer設計。
通過定義一個QProcess對象調用已編譯好的Mplayer。
- QProcess *process = new QProcess();
- process->setProcessChannelMode(QProcess::MergedChannels);
- Process->start(“mplayer –ac –mad xxxxx”);
在命令中添加 -slave 和 -quiet就可以通過命令設置Mplayer實現相應的功能。在mplayer源碼中的,slave.txt中對這些命令有詳細的Process->start(“mplayer –slave –quiet –ac –mad xxxxx”);
1.暫停功能
通過如下代碼可以設置Mplayer暫停。
- process->write(“pause\n”);
執行這段代碼的時候如果是播放狀態就會暫停,暫停狀態時就會繼續播放。
2.獲取播放文件的總時間和當前播放進度。
執行下面代碼時,Mplayer將時間在標準輸出顯示。
- process->write(“get_time_pos\n”);
- process->write(“get_time_length\n”);
通過如下代碼即可讀出我們需要的信息:
- connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));
process有可讀取的信息時,發出信號,在槽函數back_message_slots()中讀取信息。
- void MPlayer::back_message_slots()
- {
- while(process->canReadLine())
- {
- QString message(process->readLine());
- //message即為讀取的信息我們可以根據需要取我們要的信息如
- //文件總時間為:ANS_LENGTH=23.00
- //當前時間為:ANS_TIME_POSITION=23.00
- }
- }
3.快進功能
- 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.
下面代碼即可實現快進功能:
- process->write(“seek ** 1\n”);
4.音量調節
- volume <value> [abs]
- Increase/decrease volume or set it to <value> if [abs] is nonzero.
- 下面代碼即可實現快進功能:
- 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).
- 下面代碼即可實現快進功能:
- process->write(“mute 0\n”); //開啟靜音
- process->write(“mute 1\n”); //關閉靜音
6.定位視頻窗口
通過上面的代碼基本功能實現了,可是播放視頻的時候發現又彈出一個窗口。并沒有出現在我們的窗口里。
如下代碼即可時間窗口的定位。
- process->start(common);
紅色部分實現串口的定位。Widget是一個QWidget對象。通過winId可以獲得一個數字,-wid既將視頻輸出定位到widget窗體部件中。
注意:-wid參數只在X11、directX和OpenGL中適用。
下面便是效果圖:
小結:Qt編寫Mplayer前端程序實例內容介紹完了,是不是效果很好呀?這里只是實現了一些基本的功能,如果需要的話可以參考Mplayer中文檔添加需要的功能。如果您喜歡這篇文章,可以加華清遠見老師為好友,單擊以下鏈接即可:http://student.csdn.net/invite.php?u=45153&c=8af704eb3cd8e773