qt5.2并没有了phonon 模块 ,在播放音频视频的时候可以使用QMediaplayer来实现。
//创建媒体
player=new QMediaPlayer(this);
//创建播放列表,并在列表里添加两首歌曲
mediaList=new QMediaPlaylist;
mediaList->addMedia(QUrl::fromLocalFile("E:/360Downloads/Software/Qt5.2/Tools/QtCreator/bin/video/nfdsm.mp3"));
mediaList->addMedia(QUrl::fromLocalFile("E:/360Downloads/Software/Qt5.2/Tools/QtCreator/bin/video/MP3/ljf.mp3"));
//设置播放列表中的当前歌曲为第几首
mediaList->setCurrentIndex(1);
//为播放器添加播放列表
player->setPlaylist(mediaList);
player->setVolume(volumn);
//播放器开始播放列表中的歌曲
player->play();关于中文路径,目前还没有找到方法,所以只好用英文路径代替
为整个窗口设置背景色
//为整个窗口设置背景色
QPalette palette;
palette.setBrush(QPalette::Background,QBrush(QPixmap(":/image/sz")));
this->setPalette(palette);
connect(player,SIGNAL(positionChanged(qint64)),this,SLOT(positionChanged(qint64)));
//持续信号,使整个滑动条能够持续前进
connect(player, SIGNAL(durationChanged(qint64)), this, SLOT(durationChanged(qint64)));
void Widget::durationChanged(qint64 duration){ui->horizontalSlider->setRange(0,duration);}//通过滚动条控制音量为滚动条添加信号
void Widget::on_horizontalSlider_2_valueChanged(int value){player->setVolume(value);}
实现播放上一首,下一首,暂停或继续播放等功能。
//播放上一首歌曲
void Widget::on_pre_clicked(){mediaList->previous();
player->play();
}//播放下一首歌曲
void Widget::on_next_clicked(){int currentIndex=mediaList->currentIndex();if(++currentIndex==mediaList->mediaCount())currentIndex=0;mediaList->setCurrentIndex(currentIndex);}//暂停或是继续播放
void Widget::on_pos_clicked(){if(ui->pos->text()==tr("ps")){
player->pause();ui->pos->setText(tr("cn"));}
else{
player->play();ui->pos->setText(tr("ps"));}
}也可以选择不同的播放方式://当单击某行单元格时,显示改行单元格所对应的歌曲
connect(ui->tableWidget,SIGNAL(cellClicked(int,int)),this,SLOT(playTo(int))); 所调用的槽函数为playTo//设置点击的是哪首歌曲
void Widget::playTo(int i){mediaList->setCurrentIndex(i);player->play();}
//选择播放方式
void Widget::on_orderComboBox_currentIndexChanged(int<