自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Qt phonon多媒體框架

移動(dòng)開發(fā)
Phonon是KDE 4的多媒體API ,Phonon提供一個(gè)穩(wěn)定的API允許KDE 4獨(dú)立于任何一個(gè)聲音系統(tǒng)服務(wù)器如xine。本文介紹的是Qt phonon多媒體框架 的使用。

Qt phonon概述:

Qt從4.4版本開始提供的一套多媒體框架,提供多媒體回放的功能。目前在Qt 4.6中實(shí)現(xiàn)多媒體播放圖形界面主要依賴于phonon框架,其實(shí)qt中還有一個(gè)Multimedia模塊,幫助文檔中對(duì)它的描述是:實(shí)現(xiàn)底層的多媒體播放功能,在一般情況下上層的接口phonon模塊更適合實(shí)現(xiàn)這些功能。phonon最初是 一個(gè) 源于KDE的項(xiàng)目,為使用音頻和視頻的應(yīng)用程序開發(fā)提供的一個(gè)框架。應(yīng)用程序不用去管多媒體播放是通過什么實(shí)現(xiàn)的(如gstreamer、xine),只需調(diào)用相應(yīng)的接口就行,但這中間需要一個(gè)中轉(zhuǎn),被稱為backend。Qt也是通過phonon來實(shí)現(xiàn)夸平臺(tái)的多媒體播放。

多媒體文件的播放主要過程包括:文件讀取、分流、解碼、輸出。

Qt phonon多媒體框架

這些在不同的系統(tǒng)中實(shí)現(xiàn)方式不同,如windows下的DirectX、Linux下的 gstreamer或xine及Mac下的QuickTime。 而Qt中的phonon作為夸平臺(tái)的多媒體解決方案,就因該為用戶屏蔽掉這些差異。而實(shí)際上它做得還不夠好,因?yàn)橛脩暨€需要自己來安裝相應(yīng)的后端插件來完成播放任務(wù)。

Qt phonon多媒體框架

看完上圖,你可以知道,應(yīng)用Phonon框架實(shí)質(zhì)上分4個(gè)部分,你的程序,Phonon庫,Phonon后端插件(phonon_backend),真正的后端。 Phonon其實(shí)什么都不干,他只是提供了一套API接口,這套接口可以給你的程序調(diào)用,同時(shí)也是給編寫后端插件提供一個(gè)規(guī)范。程序完全不知道最后誰來放我的Mp3,誰來解碼我的視頻,播放的又是哪個(gè)設(shè)備。

同樣,Phonon庫也不知道,他只管搜索符合自己規(guī)范的插件。并告訴這些插件,現(xiàn)在程序發(fā)出的指令是什么,從插件返回給程序現(xiàn)在的媒體狀態(tài)和信息。而后端才是實(shí)際進(jìn)行讀入媒體、解碼并且播放的部分,他們和后端插件是一一對(duì)應(yīng)的。后端可以是任何形式,只要你寫出了相應(yīng)的后端插件。所以,你要使用Phonon必需要先做3件事:

1、編譯你的Phonon庫:通常情況下,Qt默認(rèn)沒有編譯,你只需要configure后加好參數(shù),然后單獨(dú)進(jìn)入phonon的文件夾進(jìn)行編譯就可以了

2、編譯你的Phonon后端插件:Qt為3大平臺(tái)分別提供了一個(gè)可用的后端插件,放在src\plugins\phonon目錄下。進(jìn)入目錄編譯即可,Qt會(huì)自動(dòng)選擇你當(dāng)前系統(tǒng)的后端插件的。(出現(xiàn)phonon backend plugin could not be loaded就是這步?jīng)]有做)

如果你是MinGW用戶,那抱歉了,Windows下Qt只提供了DirectShow這個(gè)后端插件,而這個(gè)后端插件因?yàn)檎{(diào)用了DX的SDK,所以只能由VC編譯。當(dāng)然你其實(shí)有更好的選擇,比如這個(gè)phonon-vlc-mplayer插件,通過他,你可以將mplayer作為你的后端,徹底拋棄臃腫的VS以及讀ID3v2都會(huì)出錯(cuò)的DirectShow(其實(shí)也不能怪DirectShow,DirectShow同樣只是個(gè)框架,解碼還靠系統(tǒng)里安的解碼器、濾鏡們,我用的播放器都太綠色了,于是DirectShow就很弱)

3、你要保證你的后端正常運(yùn)作:對(duì)于Qt提供默認(rèn)提供插件的后端來說,基本不成問題。但要是你想做嵌入式播放器?恩,很大的問題。據(jù)做過GStreamer移植的人反映,這事惱火的很。想做Qt嵌入式播放器的還是老老實(shí)實(shí)的QProcess+Mplayer slave模式吧?。ㄐ碌腝t4.5說是提供了CE上的DirectShow后端插件,有興趣的可以去試試看)

以上3點(diǎn)做完,你就可以拿demo里那個(gè)mediaplayer去測(cè)試了,測(cè)試成功的話,你就可以非常容易的用Qt實(shí)現(xiàn)你自己的媒體回放了。想要更高級(jí)的操作,比如編碼、混音、儲(chǔ)存媒體文件?呵呵,等Phonon慢慢更新吧,現(xiàn)在來說,Phonon還只是個(gè)什么都不能干的傳聲筒。

如上所述,如果想要運(yùn)行使用Qt中的phonon寫的程序,需要滿足一下條件:Qt基本庫、Qt phonon庫、phonon_backend(后端插件)和多媒體播放后臺(tái)。下面以linux(Fedora 12)系統(tǒng)、Qt 4.6、mplayer為例,假設(shè)Qt基本庫已經(jīng)安裝好,默認(rèn)phonon是沒有被安裝的,介紹phonon和后端插件的安裝。

1. Phonon庫安裝 :

進(jìn)入源代碼的phonon目錄,如"/usr/src/qt-everywhere-opensource-src-4.6.0/src/phonon",實(shí) 際代碼并不在里面,從phonon.pro文件可知源代碼在“/src/3rdparty/phonon/phonon”,但并不影響編譯。在終端輸入 “make;make install”即可,如果安裝時(shí)出錯(cuò),也可手動(dòng)將lib、include下相關(guān)文件拷貝到安裝目錄。

2. 后端插件安裝 :

(1)下載phonon-mplayer。

地址: http://websvn.kde.org/trunk/playground/multimedia/phonon-backends/mplayer/

使用svn下載: svn co svn://anonsvn.kde.org/home/kde/trunk/playground/multimedia/phonon-backends/mplayer

(2)返回phonon-mplayer目錄,編譯(qmake;make)生成phonon_backend/libphonon_mplayer.so動(dòng)態(tài)鏈接庫。

(3)將libphonon_mplayer.so拷貝到$QTDIR/plugins/phonon_backend/

    說明:幫助文檔中介紹Linux下Qt默認(rèn)只支持gstreamer,其它的不做保證。但實(shí)際中由于mplayer安裝比較方便,支持的文件格式全,使用的人也非常多,所以以mplayer為例。而gstreamer的后端插件可以在系統(tǒng)的“/usr/lib64/kde4/plugins /phonon_backend”目錄直接找到(如果已經(jīng)從源上安裝了的話)。

3. 測(cè)試

examples/phonon/qmusicplayer下的例子用mplayer做后端播放音樂會(huì)有問題,這里選擇使用demos/qmediaplayer。

當(dāng)然也可以用一個(gè)簡(jiǎn)單的例子,如下:

  1. #include <QtGui> 
  2. #include <Phonon/MediaObject> 
  3. #include <Phonon/VideoPlayer> 
  4. #include <Phonon/BackendCapabilities> 
  5. int main(int argv, char **args)  
  6. {  
  7. QApplication app(argv, args);  
  8.  
  9. Phonon::MediaObject *music =  
  10. Phonon::createPlayer(Phonon::MusicCategory,  
  11. Phonon::MediaSource("/home/dlw/Music/mxshf.mp3"));  
  12. music->play();  
  13. /* 視頻播放  
  14. Phonon::MediaObject *music =  
  15. Phonon::createPlayer(Phonon::VideoCategory,  
  16. Phonon::MediaSource("/media/DLW/movie/One.Night.in.Supermarket.avi"));   
  17. music->play();  
  18. */  
  19. return app.exec();   

【編輯推薦】

Qt Symbian SDK 安裝

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

QML教程:Qt-Quick六大開源組件

Qt Creator安裝和hello world程序編寫

Qt SDK 1.1 beta和Qt Quick發(fā)布 附下載

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

2011-06-24 10:21:11

Qt phonon 多媒體

2010-01-27 13:52:15

Android多媒體框

2024-06-07 14:13:39

2013-08-28 16:08:19

多媒體Windows8.1

2010-06-30 10:38:05

2023-08-15 13:57:08

開發(fā)者

2009-12-25 17:02:33

WPF多媒體

2010-10-27 11:27:50

MAS視頻監(jiān)控H3C

2013-12-17 11:18:53

iOS開發(fā)多媒體API

2013-12-17 13:29:04

iOS開發(fā)多媒體

2020-12-20 09:05:30

騰訊多媒體5G

2011-08-02 10:36:02

iOS開發(fā) SDK 多媒體

2018-02-07 15:35:04

2009-12-22 16:29:51

Linux多媒體軟件

2012-04-27 14:34:15

2010-01-27 16:21:29

Android多媒體播

2013-11-18 10:01:19

2020-02-14 12:56:56

Git多媒體文件開源
點(diǎn)贊
收藏

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