Qt編寫Mplayer前端程序
時(shí)間:2016-12-29作者:華清遠(yuǎn)見
編寫一個(gè)自己的mplayer前端程序,根據(jù)自己的喜好設(shè)計(jì)界面。是一件很不錯(cuò)的事情。 首先設(shè)計(jì)一個(gè)漂亮的界面,可以通過designer設(shè)計(jì)。
通過定義一個(gè)QProcess對象調(diào)用已編譯好的Mplayer。
QProcess *process = new QProcess(); 在命令中添加 -slave 和 -quiet就可以通過命令設(shè)置Mplayer實(shí)現(xiàn)相應(yīng)的功能。在mplayer源碼中的,slave.txt中對這些命令有詳細(xì)的 Process->start(“mplayer –slave –quiet –ac –mad xxxxx”); 1.暫停功能 通過如下代碼可以設(shè)置Mplayer暫停。 process->write(“pause\n”); 執(zhí)行這段代碼的時(shí)候如果是播放狀態(tài)就會(huì)暫停,暫停狀態(tài)時(shí)就會(huì)繼續(xù)播放。 2.獲取播放文件的總時(shí)間和當(dāng)前播放進(jìn)度。 執(zhí)行下面代碼時(shí),Mplayer將時(shí)間在標(biāo)準(zhǔn)輸出顯示。
process->write("get_time_pos\n"); 通過如下代碼即可讀出我們需要的信息: connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots())); process有可讀取的信息時(shí),發(fā)出信號(hào),在槽函數(shù)back_message_slots()中讀取信息。
void MPlayer::back_message_slots() 3.快進(jìn)功能
seek <value> [type] 下面代碼即可實(shí)現(xiàn)快進(jìn)功能: process->write(“seek ** 1\n”); 4.音量調(diào)節(jié)
volume <value> [abs] 下面代碼即可實(shí)現(xiàn)快進(jìn)功能:
Process->write(“volume -1\n”); //音量減小 5.靜音功能
mute [value] 下面代碼即可實(shí)現(xiàn)快進(jìn)功能:
process->write("mute 0\n"); //開啟靜音 6.定位視頻窗口 通過上面的代碼基本功能實(shí)現(xiàn)了,可是播放視頻的時(shí)候發(fā)現(xiàn)又彈出一個(gè)窗口。并沒有出現(xiàn)在我們的窗口里。 如下代碼即可時(shí)間窗口的定位。
QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId()); 紅色部分實(shí)現(xiàn)串口的定位。Widget是一個(gè)QWidget對象。通過winId可以獲得一個(gè)數(shù)字,-wid既將視頻輸出定位到widget窗體部件中。 注意:-wid參數(shù)只在X11、directX和OpenGL中適用。 下面便是效果圖:
這里只是實(shí)現(xiàn)了一些基本的功能,如果需要的話可以參考Mplayer中文檔添加需要的功能。
相關(guān)資訊
發(fā)表評論
|