国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

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

在命令中添加 -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");
        process->write("get_time_length\n");

通過如下代碼即可讀出我們需要的信息:

connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));

process有可讀取的信息時(shí),發(fā)出信號(hào),在槽函數(shù)back_message_slots()中讀取信息。

void MPlayer::back_message_slots()
        {
                while(process->canReadLine())
                {
                        QString message(process->readLine());
                        //message即為讀取的信息我們可以根據(jù)需要取我們要的信息如
                        //文件總時(shí)間為:ANS_LENGTH=23.00
                        //當(dāng)前時(shí)間為: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.

        下面代碼即可實(shí)現(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.

        下面代碼即可實(shí)現(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).

        下面代碼即可實(shí)現(xiàn)快進(jìn)功能:

        process->write("mute 0\n"); //開啟靜音
                process->write("mute 1\n"); //關(guā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()); 
        process->start(common);

        紅色部分實(shí)現(xiàn)串口的定位。Widget是一個(gè)QWidget對象。通過winId可以獲得一個(gè)數(shù)字,-wid既將視頻輸出定位到widget窗體部件中。

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

        下面便是效果圖:

        這里只是實(shí)現(xiàn)了一些基本的功能,如果需要的話可以參考Mplayer中文檔添加需要的功能。

發(fā)表評論
評論列表(網(wǎng)友評論僅供網(wǎng)友表達(dá)個(gè)人看法,并不表明本站同意其觀點(diǎn)或證實(shí)其描述)