久久精品国产清自在天天线_日韩国产欧美系列_亚洲天堂影视在线观看_91在线艹亚洲无码午夜_日本写真高清视频免费网站网_亚州无码大尺度另类_高跟翘臀老师后进式视频午夜_久久精品国产亚洲AV热黑人_国产另ts另类人妖_丁香五月 开心五月 激情五月

Hi,歡迎來到嵌入式培訓(xùn)高端品牌 - 華清遠見教育科技集團<北京總部官網(wǎng)>,專注嵌入式工程師培養(yǎng)15年!
當前位置: > 華清遠見教育科技集團 > 嵌入式學(xué)習(xí) > 講師博文 > Qt編寫Mplayer前端程序
Qt編寫Mplayer前端程序
時間:2016-12-29作者:華清遠見

編寫一個自己的mplayer前端程序,根據(jù)自己的喜好設(shè)計界面。是一件很不錯的事情。

首先設(shè)計一個漂亮的界面,可以通過designer設(shè)計。

通過定義一個QProcess對象調(diào)用已編譯好的Mplayer。

QProcess *process = new QProcess();
        process->setProcessChannelMode(QProcess::MergedChannels);
        Process->start(“mplayer –ac –mad xxxxx”);

在命令中添加 -slave 和 -quiet就可以通過命令設(shè)置Mplayer實現(xiàn)相應(yīng)的功能。在mplayer源碼中的,slave.txt中對這些命令有詳細的

Process->start(“mplayer –slave –quiet –ac –mad xxxxx”);

1.暫停功能

通過如下代碼可以設(shè)置Mplayer暫停。

process->write(“pause\n”);

執(zhí)行這段代碼的時候如果是播放狀態(tài)就會暫停,暫停狀態(tài)時就會繼續(xù)播放。

2.獲取播放文件的總時間和當前播放進度。

執(zhí)行下面代碼時,Mplayer將時間在標準輸出顯示。

process->write("get_time_pos\n");
        process->write("get_time_length\n");

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

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

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

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

        下面代碼即可實現(xià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.

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

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

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

6.定位視頻窗口

        通過上面的代碼基本功能實現(xiàn)了,可是播放視頻的時候發(fā)現(xiàn)又彈出一個窗口。并沒有出現(xiàn)在我們的窗口里。

        如下代碼即可時間窗口的定位。

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

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

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

        下面便是效果圖:

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

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