|   Qt編寫Mplayer前端程序  時間:2016-12-29作(zuo)者(zhe):華清遠見 編寫(xie)一(yi)個自己(ji)的mplayer前端程序,根據自己(ji)的喜好設計界面。是(shi)一(yi)件很不錯的事(shi)情。 首先設計(ji)一個漂亮的界面,可(ke)以通(tong)過designer設計(ji)。 
	 通過定義一個QProcess對(dui)象調用已編譯(yi)好的(de)Mplayer。 
	QProcess *process = new QProcess(); 在命令中添(tian)加 -slave 和 -quiet就可(ke)以(yi)通過命令設置Mplayer實現相應(ying)的(de)功能。在mplayer源碼中的(de),slave.txt中對(dui)這(zhe)些命令有(you)詳(xiang)細的(de) Process->start(“mplayer –slave –quiet –ac –mad xxxxx”); 1.暫停功能 通過如下代(dai)碼可以設置Mplayer暫停(ting)。 process->write(“pause\n”); 執(zhi)行這段代碼的時(shi)候如果(guo)是播放(fang)狀(zhuang)態就會(hui)暫停(ting),暫停(ting)狀(zhuang)態時(shi)就會(hui)繼續(xu)播放(fang)。 2.獲取(qu)播(bo)放文件(jian)的總(zong)時間和當前播(bo)放進(jin)度(du)。 執行下面(mian)代碼時,Mplayer將(jiang)時間在標準輸(shu)出顯示。 
	process->write("get_time_pos\n"); 通過如下代碼(ma)即可讀出(chu)我們(men)需要的信息: connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots())); process有(you)可(ke)讀取的(de)信(xin)息(xi)時,發出信(xin)號,在槽函數back_message_slots()中讀取信(xin)息(xi)。 
	void MPlayer::back_message_slots() 3.快進功能 
	        seek <value> [type]   下面代碼即可實現快(kuai)進功能: process->write(“seek ** 1\n”); 4.音量調節 
	        volume <value> [abs]   下面代(dai)碼即可實現(xian)快進功能(neng): 
	        Process->write(“volume -1\n”); //音量減小 5.靜音功能 
	         mute [value] 下面代碼即(ji)可(ke)實現快進功能: 
	        process->write("mute 0\n"); //開啟靜音 6.定(ding)位視頻窗口   通(tong)過上(shang)面的代碼基本功能(neng)實現了,可是播放視頻的時候(hou)發現又(you)彈出(chu)一(yi)個窗口。并沒(mei)有出(chu)現在我們的窗口里。   如下代碼(ma)即可時間(jian)窗口的定位。 
	        QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId());  紅色(se)部分實現串口(kou)的定(ding)位(wei)。Widget是一個QWidget對象。通過winId可以獲(huo)得一個數字,-wid既(ji)將視頻輸出定(ding)位(wei)到widget窗體部件中。 注意:-wid參數(shu)只在X11、directX和OpenGL中適用。   下(xia)面便是效果(guo)圖: 
	 
	 這里(li)只是實現(xian)了一(yi)些基(ji)本的功能(neng),如(ru)果需(xu)要的話(hua)可以參考Mplayer中(zhong)文檔添加需(xu)要的功能(neng)。 
 發表評論 
 |