日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]  作者:曹忠明,華清遠(yuǎn)見嵌入式學(xué)院講師。 編寫一個(gè)自己的mplayer前端程序,根據(jù)自己的喜好設(shè)計(jì)界面。是一件很不錯(cuò)的事情。 首先設(shè)計(jì)一個(gè)漂亮的界面,可以通過(guò)designer設(shè)計(jì)。 通過(guò)定義一個(gè)QProcess對(duì)象調(diào)用已編

  作者:曹忠明,華清遠(yuǎn)見嵌入式學(xué)院講師。

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

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


通過(guò)定義一個(gè)QProcess對(duì)象調(diào)用已編譯好的Mplayer。

QProcess *process = new QProcess();

process->setProcessChannelMode(QProcess::MergedChannels);

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

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

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

1.暫停功能

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

process->write(“pausen”);

執(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_posn");

process->write("get_time_lengthn");

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

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 ** 1n”);

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 -1n”); //音量減小

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

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 0n"); //開啟靜音

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

6.定位視頻窗口

通過(guò)上面的代碼基本功能實(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對(duì)象。通過(guò)winId可以獲得一個(gè)數(shù)字,-wid既將視頻輸出定位到widget窗體部件中。

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

下面便是效果圖:




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

“本文由華清遠(yuǎn)見http://www.embedu.org/index.htm提供”



來(lái)源:華清遠(yuǎn)見1次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉