2009年12月6日 星期日

QT撰寫的linplayer v0.016 多媒體播放器發佈.

































可播放網路電視,網路廣播,本地音樂,本地影片
版本v0.016 ,支援多種格式, 目前大部分基本功能都具備了,下一版希望能增加更多功能.
下載位置:
http://sites.google.com/site/yplinlinux/

10 則留言:

提到...

您好:

您所做的播放器真的非常的棒, 我是近日才開始接觸到phonon, 有個問題一直非常困擾, 希望能與您討論. 我寫了個非常簡單的phonon程式, 編譯都ok, 播放url的影片檔也都正常, 但是當我選擇本地的影片檔案, 畫面一片空白, 用您的播放器也是如此, 我的程式如下, 查了好久完全沒有頭緒. 不知道是否可以跟您請教?

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QUrl url("http://www.bamboo.hc.edu.tw/~shally/misc/mpeg/m008_advertisement.wmv");

QWidget *widget = new QWidget;
widget->setWindowTitle("Video Player");
widget->resize(400,400);

Phonon::MediaObject *mediaObject = new Phonon::MediaObject;
mediaObject->setCurrentSource(Phonon::MediaSource("/home/odin/Public/test1.mpeg"));
//mediaObject->setCurrentSource(Phonon::MediaSource(url));

Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget(widget);
Phonon::createPath(mediaObject, videoWidget);
videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);

Phonon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory);
Phonon::createPath(mediaObject, audioOutput);

widget->show();

mediaObject->play();

return app.exec();
}

Y.P.LIN Blogger 提到...

沒注意看你是播mpeg
videoWidget你沒加到widget當然沒播
加入下面就OK了,試了OK

QVBoxLayout *vLayout = new QVBoxLayout;
vLayout->addWidget(videoWidget);

widget->setLayout(vLayout);

Y.P.LIN Blogger 提到...

hello:
我知道為什麼了
Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget(widget);
videoWidget實際上應該是在widget就加上了,應該只是0X0的影像,所以看不到,

QVBoxLayout *vLayout = new QVBoxLayout;
widget->setLayout(vLayout);
vLayout->addWidget(videoWidget);

會把影像拉到隨視窗大小,所以能看到影像

Y.P.LIN Blogger 提到...

沒錯
Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget(widget);
videoWidget
在widget只是0X0的影像,所以看不到,
你把videoWidget設寬和高也可以如下

videoWidget->setFixedWidth(200);
videoWidget->setFixedHeight(300);

提到...

您好:

我有加入您的程式碼, 但狀況是一樣的, 一樣是url影片正常, 但本地檔案依舊沒畫面沒聲音. 另外我用您的播放器編譯後執行本地影片檔, 他會出現"連接中,請耐心等待"的字樣, 讀秒讀完之後, 就會出現"連接不上,可能是網路塞車或網址不對,試其他位置看看."的訊息.不只是本地檔案, 其他選項播放音樂, 網路電視等等也都是如此, 感覺上似乎不是程式碼的問題, 而是系統的問題, 不知道是不是我的系統有少安裝套件?
我的系統是Gnome Ubuntu 9.10

Y.P.LIN Blogger 提到...

hello:你的程式碼我加那幾行撥放是正常的.
我網頁上有說在kde下相關lib套件都機乎安裝上去了,我只多裝了w64codes撥rm,其它播mpeg,wma,mp3都正常.
gnome還要安裝相關套件,這星期我來安裝Gnome Ubuntu 9.10試看看,因為我一直都是在kubuntu 9.04 9.10下跑的是沒問題,GStreamer你有裝嗎?我覺的你是缺少影音套件.你可以google一下phonon需要哪些解碼器.
下面這個GStreamer應該要裝,用synaptic找看看GStreamer有裝嗎?
http://wiki.ubuntu-tw.org/index.php?title=Gstreamer

提到...

您好:

您建議的gstreamer我都裝了, 結果還是一樣, 有一點我感到很奇怪的是http上面的檔案可以播放, 可是本地的檔案就沒辦法. 另外我試著用另一台電腦安裝kubuntu 9.10, 試的結果連http的檔案也沒法播放, 當然本地檔案就不用說哩. >_<

Y.P.LIN Blogger 提到...

hello:
1.那你可以把mpeg檔(小檔),先上傳到網路,在播放看看,若是有影像有聲音,就不是解碼器的問題,可𠹌是路徑的問題或權限的問題.

2.還有可試著將檔案copy到別目錄再編譯qt(我發生過怎改怎編RUN結果都不變,copy到別目錄就OK)

3.先把*.o和Makfile砍掉重編看看

3.用相對路徑試看看
把test1.mpeg放到你的目前目錄,試看看
mediaObject->setCurrentSource(Phonon::MediaSource("test1.mpeg"));

Y.P.LIN Blogger 提到...

hello:

寫程式記得要一直copy版本編號,隨時能回到之前的版本,因為有時改一下子,會出現BUG,不好找就回到上一版.我現在已經快1000行了,萬一不小心,找不到ERROR,重寫我會累死.還有也要做備份copy到別的儲存裝置.

譬如:
目錄Video Player_v0.001
Video Player_v0.002
Video Player_v0.003
萬一Video Player_v0.003改錯,Video Player_v0.003 砍掉,cop Video Player_v0.002到Video Player_v0.003
這樣能保證寫程式省時省力

Y.P.LIN Blogger 提到...

hello
檢查一下下面這個套件有裝嗎?

phonon-backend-xine