您的位置:首页 > 编程语言 > Qt开发

QT 使用phonon开发视频播放器遇到的问题(希望能帮到你)

2014-09-13 14:57 701 查看
大概用了将近一周时间,从开始选定方法,对phonon一窍不通,到最后好不容易完成初品,实在不易,所以将整个过程记录下来,也许这还是其中的一点点问题,但也希望能帮到大家。首先,我查了许多资料,比如QTAV,gstreamer,vlc等,但由于网上phonon+mplayer的教程很多,所以选了这条路。作为入门的资料:推荐http://blog.csdn.net/lywzgzl/article/details/39184389,这是我转载并整理的。在这期间遇到了以下问题:1.安装phonon:在网上搜到了许多方法,都没成功,最后试了
sudo apt-get install libphonon-dev libphonon4 phonon-backend-gstreamer,居然就成功了,在QT编译器中试试include一下看有没有。
2.安装mplyer:
这个是我很纠结的地方,因为我到最后也不清楚到底是用了mplayer没有。安装mplayer的方法我也是用的最直接的,在ubuntu的更新中心里下载,之前网上的方法我都失败了。并且,我还在更新中心下载了Gstreamer相关的,以及vlc播放器。
3.安装phonon-mlpayer:
这个我是安照网上的方法试的,下载的是http://download.csdn.net/detail/lywzgzl/7908433,可以用。这里要提示一下。我的qt中就没有phonon_backed,就自己建一个文件夹,按网上的说法把。so文件放进去。
4.只有声音没有图像:
在编译的时候,提示了两次需要解码器,第一次是提示需要video/x-surface,第二次是提示需要H.264解码器。第一次的解决方法是gstreamer-ffmpeg-0.10.11-2.el6.i686.rpm,下载地址:http://download.csdn.net/detail/lywzgzl/7909067。
当然也可以把网上说的一些方法试一下。这里我觉得有用的下载

w32codecs-1.0-20110131.fc19.i686.rpm,以及

all-20061022.tar.bz2

地址:http://download.csdn.net/detail/lywzgzl/7908465,http://u.download.csdn.net/upload?ref=toolbar.
这里是我的一些解决方法,希望能帮到大家。
附我的一个简单测试程序:
在main.cpp中:
#include <QtGui/QApplication>#include "widget.h"#include <QApplication>#include <QWidget>#include <phonon>#include <QUrl>#include <QObject>#include <QVBoxLayout>#include <QHBoxLayout>#include <QLabel>#include <QTextCodec>#include <VideoCaptureDevice>int main(int argc, char *argv[]){QApplication a(argc, argv);a.setApplicationName("Player");QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));//设置编码格式QWidget *widget = new QWidget;widget->setWindowTitle("Video Player");widget->resize(400,400);// void QCoreApplication::addLibraryPath ( const QString & path  ) ;Phonon::MediaObject *mediaObject = new Phonon::MediaObject;mediaObject->setCurrentSource(Phonon::MediaSource("/home/ubuntu/桌面/phononvedio/听妈妈的话.mpg"));Phonon::VideoWidget *videowidget = new Phonon::VideoWidget;Phonon::createPath(mediaObject,videowidget);Phonon::AudioOutput *audiooutput = new Phonon::AudioOutput(Phonon::VideoCategory);Phonon::createPath(mediaObject,audiooutput);mediaObject->play();videowidget->show();return a.exec();}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: