国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

基于QT前端的Mplayer播放器項(xiàng)目之功能體驗(yàn)

移動(dòng)開發(fā)
MPlayer是一款開源多媒體播放器,以GNU通用公共許可證發(fā)布。此款軟件可在各主流作業(yè)系統(tǒng)使用,例如Linux和其他類Unix系統(tǒng)、微軟的視窗系統(tǒng)及蘋果電腦的Mac OS X系統(tǒng)。MPlayer是建基于命令行界面,在各作業(yè)系統(tǒng)可選擇安裝不同的圖形界面。

一、項(xiàng)目概述

Mplayer,它支持大量的多媒體文件格式,像常見的音頻文件如mp3/wav/mid,常見的視頻文件如avi/vcd/dvd/rm等等,各種視頻編/解碼方式也是應(yīng)有盡有。

我們項(xiàng)目的目標(biāo)是在liunx下,用QT做一個(gè)MPlayer皮膚,能夠?qū)崿F(xiàn)播放器的常見功能,如:播放、停止、快進(jìn)、快退、上/下一曲等。并把程序移植到ARM平臺(tái)上。

二、功能體驗(yàn)

本節(jié)主要目的是讓大家在學(xué)習(xí)具體實(shí)現(xiàn)過程前,先體驗(yàn)下播放器的功能。
 

1、PC端功能體驗(yàn)

將“項(xiàng)目代碼\工程代碼”目錄下的mplayer.tar.gz拷貝linux系統(tǒng)中(主機(jī)環(huán)境配置好以后,參照第四節(jié)的實(shí)現(xiàn)過程)。

  1. #tar xvfz mplayer.tar.gz   
  2. #./mplayer 

2、目標(biāo)平臺(tái)功能體驗(yàn)

(1)將“項(xiàng)目代碼\工程鏡像”文件夾中的zImage、rootfs.cramfs燒寫到目標(biāo)板(或者采用nfs方式)。分區(qū)情況為:

  1. Boot: 0 - 40000   size=0x40000   
  2. Kernel:40000 – 240000 size=0x200000   
  3. Rootfs: 240000 -3740000 size=0x3500000   
  4. setenv root=1f02 init=/linuxrc rootfstype=cramfs console=ttySAC0,115200 display=sam240 
  5. setenv bootcmd setenv bootcmd nand read 30008000 40000 200000 \; go 30008000 

(2)啟動(dòng)系統(tǒng)后運(yùn)行:

  1. #. ./Qtopia.sh   
  2. #cd mymplayer   
  3. #./mymplayer -qws 

三、實(shí)現(xiàn)原理

先來考慮考慮如何為mplayer編寫前端界面的問題。有兩種思路,一種是把mplayer解剖,直接修改他里面的代碼,這樣我們做得界面就能夠和mplayer一體了(當(dāng)然也能夠通過link mplayer用到的任何的庫和.o文檔,把他無縫的集成在程式里面);第二種方法就是mplayer所謂的slave模式。

  1. mplayer '/home/linux/1.mp3' -quiet -slave 

現(xiàn)在來探討一下slave模式:所謂的slave模式,就是mplayer在運(yùn)行過程中能夠接收用戶的輸入命令行,具體支持哪些命令行,能夠通過mplayer -input cmdlist這條命令來得到,在Mplayer源碼的slave.txt中也有對(duì)這些命令有詳細(xì)的講解。Slave模式下工作的Mplayer可以和系統(tǒng)的標(biāo)準(zhǔn)輸入、輸出進(jìn)行信息交互。我們可以用linux C編程來完成對(duì)slave模式工作的Mplayer進(jìn)行控制和信息獲取。

如:

  1. mkfifo(“/tmp/fifo”,0777);  
  2. 可以使用popen()來打開Mplayer  
  3. FILE* mp;  
  4. mp=popen(“mplyer /home/linux/1.mp3 -quiet –slave –input file=/tmp/fifo,”r”); 

可以通過管道/tmp/fifo給mplayer發(fā)送命令,通過mp獲取mplay的返回?cái)?shù)據(jù)

如:

  1. system(“echo \”mute 0\” > /tmp/fifo”);//寫命令  
  2. fgets(buf,1000,mp);//讀取mplay返回?cái)?shù)據(jù) 

而Qt給我們提供了更方便的實(shí)現(xiàn)方法。

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

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

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

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

#p#

1、暫停功能

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

  1. process->write(“pause ”); 

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

2、獲取播放文件的總時(shí)間和當(dāng)前播放進(jìn)度

執(zhí)行下面代碼時(shí),Mplayer將時(shí)間在標(biāo)準(zhǔn)輸出顯示。

  1. process->write("get_time_pos ");   
  2. process->write("get_time_length "); 

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

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

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

  1. void MPlayer::back_message_slots()  
  2. {  
  3. while(process->canReadLine())  
  4. {  
  5. QString message(process->readLine());  
  6. //message即為讀取的信息我們可以根據(jù)需要取我們要的信息如  
  7. //文件總時(shí)間為:ANS_LENGTH=23.00  
  8. //當(dāng)前時(shí)間為:ANS_TIME_POSITION=23.00  
  9. }  

3、快進(jìn)功能

  1. seek <value> [type]   
  2. Seek to some place in the movie.   
  3. 0 is a relative seek of +/- <value> seconds (default).   
  4. 1 is a seek to <value> % in the movie.   
  5. 2 is a seek to an absolute position of <value> seconds. 

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

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

4、音量調(diào)節(jié)

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

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

  1. Process->write(“volume -1 ”);           //音量減小  
  2. Process->write(“volume +1 ”);          //音量增加 

5、靜音功能

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

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

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

6、定位視頻窗口

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

如下代碼即可時(shí)間窗口的定位。

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

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

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

本文章主要介紹了mplayer的基本概念,功能體驗(yàn),實(shí)現(xiàn)原理,那么下節(jié)將會(huì)深入講解實(shí)現(xiàn)原理。

【編輯推薦】

解析 QT 靜態(tài)庫和動(dòng)態(tài)庫

深度解析 QT 編譯安裝方法

用Qt為Symbian開發(fā)應(yīng)用程序

淺談自動(dòng)化測試工具 QTP腳本的重用

開源軟件是基于JVM 平臺(tái)之Qt移植QtJambi

解析Qt 4.3.5 X11 交叉編譯平臺(tái)的搭建、移植

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-10 14:06:32

QT mplayer

2011-09-06 11:08:21

QT播放器Mplayer

2011-06-13 09:33:04

2009-02-17 23:41:43

Mplayer播放器常見問題

2011-06-27 11:23:21

Qt 音樂播放器

2011-06-24 10:21:11

Qt phonon 多媒體

2015-05-21 15:25:42

VLC播放器

2015-10-19 17:28:00

MPlayer媒體播放器開源

2011-06-16 17:54:30

Qt Mplayer

2010-10-26 09:00:48

Winamp應(yīng)用

2011-06-13 11:24:55

QT MPlayer 移植

2011-09-06 11:25:08

2023-03-06 16:20:08

視頻播放器VLC

2011-09-06 10:46:19

QT播放器

2013-07-23 17:55:14

酷狗音樂mac

2022-08-16 17:37:06

視頻播放器鴻蒙

2012-04-05 13:19:06

WEBHTML5

2009-07-07 09:11:23

LINUXmplayer

2015-01-19 13:52:38

Android源碼多功能播放器

2012-04-19 13:52:16

TitaniumMVCRedux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲理论在线观看| ...av二区三区久久精品| 欧美一级免费看| 羞羞的网站在线观看| 亚洲欧美日韩精品久久久久| 可以看毛片的网址| 日韩成人一级片| 成人永久免费| 亚洲自拍偷拍网| 国产精品嫩草影院一区二区| 亚洲一区二区三区在线免费| 国产亚洲欧美日韩美女| 秋霞在线视频| 日韩欧美国产综合| 操你啦视频在线| 这里只有精品视频在线观看| 韩国中文字幕2020精品| 欧美性生交xxxxx久久久| 亚洲成人福利| 狠狠干狠狠久久| 欧美日韩激情视频一区二区三区| 五月激情综合色| 最近中文字幕在线中文视频 | 久久久久久青草| 欧美天天综合色影久久精品| 亚洲第一se情网站| 色综合久久中文综合久久牛| 九九在线视频| 日韩一区二区精品葵司在线| 青草视频在线免费直播| 日韩av在线免费观看一区| 在线最新版中文在线| 亚洲天堂av网| 四虎精品在线观看| 欧美丰满老妇厨房牲生活 | 日韩av在线一区| 女生影院久久| xx视频.9999.com| 欧美顶级毛片在线播放| 国产精品夜色7777狼人| 红桃视频亚洲| 一级特黄录像免费播放全99| 北岛玲一区二区三区四区| 欧美性大战久久久久xxx | 天天做天天爱天天高潮| 国产成人日日夜夜| 男人添女人下面免费视频| 一片黄亚洲嫩模| 成人网视频在线观看| 亚洲成人黄色网| 国产一区二区在线观| 国产精品香蕉在线观看| 久久国产成人| 国产aaa一级片| 午夜激情久久久| 超碰在线中文字幕| 欧美黑人极品猛少妇色xxxxx| 久久综合国产| 亚洲一区二区高清视频| 国产精品久久久久久久久久免费看 | 大荫蒂性生交片| 国产精品系列在线| 男男激情在线| 中文字幕亚洲第一| 成人黄色小视频| 日韩第一页在线观看| 日韩美女视频一区| 成人性生交大片免费看在线播放| 欧美激情久久久| 性久久久久久| 成人网18免费网站在线| 777午夜精品视频在线播放| 久久三级中文| 欧美精品与人动性物交免费看| 欧美国产国产综合| 日日夜夜天天综合入口| 777777777亚洲妇女| 蜜臀精品一区二区三区在线观看| siro系绝美精品系列| 亚洲精品综合久久中文字幕| 久久精品国产99久久| 国产综合av在线| 日韩一区二区在线观看视频播放| 91蜜桃臀久久一区二区| 日韩国产在线一区| 精品日韩美女的视频高清| 四虎影视精品永久在线观看| 国产一区二区在线观看免费播放| 国产三级一区二区三区| 亚洲91av| 91精品久久久久久久久久久久久| 夫妻av一区二区| 懂色av中文在线| 国外成人性视频| 国内精品免费在线观看| 国产有码在线| 欧美中文在线免费| 成人中文字幕电影| www.久久ai| 91天堂在线观看| 国产精品国产自产拍高清av| 香蕉视频亚洲一级| 日韩欧美国产二区| 欧美午夜片在线看| 91久久夜色精品国产按摩| 亚洲精品中文字幕无码蜜桃| 精品国产乱码91久久久久久网站| 亚洲精品网址| 黄页在线播放| 欧美激情a在线| 国产a国产a国产a| 欧美中文字幕一区| 成人在线网站| 欧美一区免费视频| 精品在线观看免费| 欧美精品hd| 5月丁香婷婷综合| 国产一区网站| 日韩免费高清在线| 亚洲精品有码在线| 日本vs亚洲vs韩国一区三区二区| 最新在线地址| 韩国美女主播一区| 久久综合久久综合九色| 电影网一区二区| 26uuu成人| 日韩电影网在线| 看国产成人h片视频| 性欧美videoshd高清| 超碰cao国产精品一区二区| 欧美综合激情网| 中文字幕视频一区二区三区久| 亚洲精品乱码日韩| 男女日批视频在线观看| 亚洲国产97在线精品一区| 久久福利一区| 搞黄网站在线观看| 亚洲精品电影在线一区| 日韩精品一区二区三区swag| 老司机精品导航| a级大胆欧美人体大胆666| 一区二区高清视频| 亚洲欧美www| 国产高清久久久| 高清不卡一区| 久久国产精品国产精品| 青青久久av北条麻妃海外网| 天天做天天摸天天爽国产一区| 久久五月天小说| 日本不卡三区| 三年中国中文在线观看免费播放 | 亚洲国产成人精品女人久久久| 久久婷婷激情| 成人日韩在线观看| 亚洲精品中文字幕无码蜜桃| 2019中文字幕在线观看| 五月激情综合网| 亚洲永久字幕| 国产精品迅雷| 国产一级做a爰片久久| 国产99视频在线观看| 欧美主播一区二区三区| 麻豆精品国产传媒mv男同| 免费成人毛片| 国产传媒在线视频| 欧美下载看逼逼| 久久精品国产亚洲7777| 亚洲免费观看高清完整版在线观看| 91精品国产乱码久久久久久久| 麻豆影院在线| 国产91在线亚洲| 98精品国产高清在线xxxx天堂| 亚洲国产精品久久人人爱| 国产精品久久777777毛茸茸 | 亚洲另类图片色| 久久久久国产成人精品亚洲午夜| 成人影院在线| 丁香花电影在线观看完整版| 国内自拍视频一区| 国产福利久久精品| 国产一区二区三区在线观看视频| 亚洲精品第一国产综合野| 久久精品一区二区国产| 日韩成人精品一区二区三区| 一级特黄特色的免费大片| 亚洲精品国产第一综合99久久| 亚洲一区高清| 欧美精品福利视频| 欧美午夜精品久久久| 国产精品996| 久久高清免费| 日韩高清成人| 免费a级毛片在线观看| 国产一区二区三区小说| 国产精品一区二区视频| 一卡二卡3卡四卡高清精品视频| 久久久久久成人精品| 日韩视频免费观看高清在线视频| 国产午夜亚洲精品理论片色戒| 亚洲美女色禁图|