在Qt中自带的demo中也又一个简单的播放器,但是代码还是相对复杂,我每次看一个demo时总是把它删减到最简单化,这样才能成为自己的东西,然后再在此基础上增加相应的代码,然后看看这些代码是什么功能,总之是把他的骨架先挖出来然后再给它添衣服。这是最简单的播放音乐的代码。
这是头文件的代码:
#ifndef WIDGET_H
#define WIDGET_H
 
#include <QWidget>
#include <phonon>
#include <QList>
#include <QStringList>
#include <QFileDialog>
#include <QMessageBox>
 
class MusicPlayer {
 
public:
    MusicPlayer();
    ~MusicPlayer();
public:
    Phonon::MediaObject *mediaObject;
    Phonon::AudioOutput *audioOutput;
    Phonon::SeekSlider *seekSlider;
    Phonon::MediaSource *source[4];
    QList<Phonon::MediaSource> sourceList;//
public :
    void addFiles();
    void playFile(int);
    void pauseFile();
    void stopFile();
protected:
    void changeEvent(QEvent *e);
 
 
};
 
#endif // WIDGET_H
#################################
这是cpp文件代码:
#include "musicplayer.h"

MusicPlayer::MusicPlayer()
{

    mediaObject = new Phonon::MediaObject();
    audioOutput = new Phonon::AudioOutput();
    seekSlider  = new Phonon::SeekSlider();
    source[0]  = new Phonon::MediaSource("./sound/welcome.mp3");
    source[1]  = new Phonon::MediaSource("./sound/jinggao.mp3");
    source[2]  = new Phonon::MediaSource("./sound/quka.mp3");
    source[3]  = new Phonon::MediaSource("./sound/goodbye.mp3");
    Phonon::createPath(mediaObject,audioOutput);
    seekSlider->setMediaObject(mediaObject);
    seekSlider->setGeometry(30,300,300,30);


}


void MusicPlayer::playFile(int i)
{

   mediaObject->setCurrentSource(*source[i]);
    mediaObject->play();
   
}
void MusicPlayer::pauseFile()
{
    mediaObject->stop();
 

}
void MusicPlayer::stopFile()
{
    mediaObject->stop();

}
MusicPlayer::~MusicPlayer()
{

}
上面的两个文件是实现MusicPlayer类的.h和.cpp文件,当想播放音乐时只需在main函数或其他函数中调用即可,如在main中调用
MusicPlyer player;
player.playFile(0);//参数是选择播放哪个歌曲
呵呵,很简单把……