Здравствуйте!
Написал ради теста такую программку:
mediaplayer.h
Код:
#ifndef MEDIAPLAYER_H
#define MEDIAPLAYER_H
#include <QtGui>
#include <phonon/AudioOutput>
#include <phonon/VideoWidget>
#include <phonon/MediaSource>
#include <phonon/Path>
#include <phonon/SeekSlider>
#include <phonon/VolumeSlider>
#include <phonon/MediaObject>
#include <phonon/phonondefs.h>
#include <phonon/MediaNode>
#include <phonon/MediaObject>
#include <phonon/MediaController>
class MediaPlayer : public QWidget
{
Q_OBJECT
private:
Phonon::MediaObject *pmedia;
Phonon::AudioOutput *pao;
Phonon::VideoWidget *pvideo;
public:
MediaPlayer(QWidget *parent = 0);
public slots:
void slotLoad();
};
#endif // MEDIAPLAYER_H
main.cpp
Код:
#include <QtGui>
#include "mediaplayer.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setApplicationName("media");
MediaPlayer w;
w.show();
return a.exec();
}
mediaplayer.cpp
Код:
#include "mediaplayer.h"
MediaPlayer::MediaPlayer(QWidget *parent)
: QWidget(parent)
{
pmedia = new Phonon::MediaObject(this);
pao = new Phonon::AudioOutput(Phonon::MusicCategory, this);
Phonon::createPath(pmedia, pao);
QPushButton *play = new QPushButton("Play");
QPushButton *stop = new QPushButton("Stop");
QPushButton *pause = new QPushButton("Pause");
QPushButton *load = new QPushButton("Load");
Phonon::SeekSlider *pseek = new Phonon::SeekSlider;
Phonon::VolumeSlider *pvolume = new Phonon::VolumeSlider;
pseek->setMediaObject(pmedia);
pvolume->setAudioOutput(pao);
pvolume->setOrientation(Qt::Horizontal);
pvolume->setMaximumHeight(30);
connect(play, SIGNAL(clicked()), pmedia, SLOT(play()));
connect(stop, SIGNAL(clicked()), pmedia, SLOT(stop()));
connect(pause, SIGNAL(clicked()), pmedia, SLOT(pause()));
connect(load, SIGNAL(clicked()), SLOT(slotLoad()));
QHBoxLayout *playout = new QHBoxLayout;
playout->addWidget(play);
playout->addWidget(pause);
playout->addWidget(stop);
playout->addWidget(pseek);
playout->addWidget(load);
QVBoxLayout *pvlayout = new QVBoxLayout;
pvlayout->addLayout(playout);
pvlayout->addWidget(pvolume);
setLayout(pvlayout);
}
void MediaPlayer::slotLoad()
{
QString resStr = QFileDialog::getOpenFileName(0, "Load", "", "*.*");
if(!resStr.isEmpty())
pmedia->setCurrentSource(Phonon::MediaSource(resStr));
pmedia->play();
}
Программа запускается и виджет отображается, но звука нет.
Сижу на Arch Linux. QtCreator выдает
Starting /home/ydz/ProjectsQt/MediaPlayer-build-desktop/MediaPlayer...
media(5200) KSambaSharePrivate::findSmbConf: KSambaShare: Could not find smb.conf!
Связано ли это как то с проблемой со звуком? Помогите разобраться, в чем дело.