久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

Hi,歡迎來到嵌入式培訓高端品牌 - 華清遠見教育科技集團<北京總部官網>,專注嵌入式工程師培養15年!
當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > Qt編寫Mplayer前端程序
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();
        process->setProcessChannelMode(QProcess::MergedChannels);
        Process->start(“mplayer –ac –mad xxxxx”);

在命令中添(tian)加 -slave 和 -quiet就可(ke)以(yi)通過命令設置Mplayer實現相應(ying)的(de)功能。在mplayer源碼中的(de),slave.txt中對(dui)這(zhe)些命令有(you)詳(xiang)細的(de)

Process->start(&ldquo;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");
        process->write("get_time_length\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()
        {
                while(process->canReadLine())
                {
                        QString message(process->readLine());
                        //message即為讀取的信息我們可以根據需要取我們要的信息如
                        //文件總時間為:ANS_LENGTH=23.00
                        //當前時間為:ANS_TIME_POSITION=23.00
                }
  &nbsp;&nbsp;    }

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.

&nbsp;       下面代碼即可實現快(kuai)進功能:

        process->write(“seek ** 1\n”);

4.音量調節

        volume <value> [abs]
                Increase/decrease volume or set it to <value> if [abs] is nonzero.

   &nbsp;    下面代(dai)碼即可實現(xian)快進功能(neng):

        Process->write(“volume -1\n”); //音量減小
                Process->write(“volume +1\n”); //音量增加(jia)

5.靜音功能

         mute [value]
                Toggle sound output muting or set it to [value] when [value] >= 0
      &nbsp;         (1 == on, 0 == off).

        下面代碼即(ji)可(ke)實現快進功能:

        process->write("mute 0\n"); //開啟靜音
     ;           process->write("mute 1\n"); //關閉靜音

6.定(ding)位視頻窗口

    &nbsp;   通(tong)過上(shang)面的代碼基本功能(neng)實現了,可是播放視頻的時候(hou)發現又(you)彈出(chu)一(yi)個窗口。并沒(mei)有出(chu)現在我們的窗口里。

    &nbsp;   如下代碼(ma)即可時間(jian)窗口的定位。

        QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget->winId()); 
        process->start(common);

        紅色(se)部分實現串口(kou)的定(ding)位(wei)。Widget是一個QWidget對象。通過winId可以獲(huo)得一個數字,-wid既(ji)將視頻輸出定(ding)位(wei)到widget窗體部件中。

        注意:-wid參數(shu)只在X11、directX和OpenGL中適用。

      &nbsp; 下(xia)面便是效果(guo)圖:

        這里(li)只是實現(xian)了一(yi)些基(ji)本的功能(neng),如(ru)果需(xu)要的話(hua)可以參考Mplayer中(zhong)文檔添加需(xu)要的功能(neng)。

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)