meego上播放視頻的方法總結

轉載時請註明出處和作者聯繫方式
文章出處:
http://blog.csdn.net/jack0106
作者聯繫方式:馮牮
[email protected]

 

1. meego上的多媒體編程,使用的框架是gstreamer,所以,在命令行下,可以用gstreamer,但是,我們真正關注的是,如何在GUI環境中,播放視頻(這裏說的視頻,包括本地視頻文件,以及網絡在線視頻)。

2. 根據最近的調試工作和代碼閱讀,發現了兩種可行的辦法。

2.1 libmeegotouch中,有個MVideoWidget,可以播放本地視頻文件(僅僅是本地視頻文件),該widget的代碼實現,也是使用了gstreamer,但是,gstreamer的使用細節,完全被隱藏了。如果想播放網絡視頻,或其他類型的視頻,我覺得,比較合理的方法是參照MVideoWidget的源代碼,進行一定的修改,主要是修改MVideoWidget中使用的gstreamer pipeline,然後重新實現一個新的widget,使其可以播放網絡視頻或其他視頻數據源。

另外,在libmeegotouch源碼目錄/libmeegotouch/demos/widgetsgallery中的demo程序 widgetsgallery,使用了MVideoWidget,可以通過這個代碼,學習MVideoWidget的使用方法。

2.2 在目前我們使用的meego鏡像中,有個meegovideo程序,其git地址是 git://gitorious.org/meego-handset-ux/meego-handset-video.git

分析meegovideo的源代碼,發現並沒有使用MVideoWidget,而是使用了QMediaPlayer類,QMediaPlayer屬於Qt-Mobility中的一個新框架--Multimedia,所以,這應該是另外一種解決辦法。

簡單看了一下該框架的文檔,發現其中的QMediaContent,是可以設置QUrl的,這也許就說明,Qt-Mobility中的Multimedia框架,是一個更好的選擇,更通用的方案。  

3. 不管使用哪一種方案,難度都很大,需要看代碼分析代碼。

4. 另外,補充說明一下,qt中,本來已經有一個多媒體框架, Phonon。 而Qt-Mobility中的Multimedia框架,是一個新的框架。這兩個框架,應該也是競爭關係,更多的信息,可以上網搜索。

5. 如有新的發現,會補充到本文檔中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章