最近看了一点关于PHONON的知识,空余就写了一个
核心代码
void MainWindow::playPause()
{
switch (mediaObject->state()){
case Phonon::PlayingState:
ui->playButton->setIcon(QIcon(":/play.png"));
ui->playButton_2->setIcon(QIcon(":/play.png"));
mediaObject->pause();
ui->playButton->setChecked(false);
break;
case Phonon::PausedState:
mediaObject->play();
ui->playButton->setIcon(QIcon(":/pause.png"));
ui->playButton_2->setIcon(QIcon(":/pause.png"));
break;
case Phonon::StoppedState:
mediaObject->play();
ui->playButton->setIcon(QIcon(":/pause.png"));
ui->playButton_2->setIcon(QIcon(":/pause.png"));
songName = files.at(songFlag);
songName = songName.section("/",-1);
ui->songLabel->setText("<font color=red>"+songName+"</font>");
break;
case Phonon::LoadingState:
ui->playButton->setChecked(false);
ui->playButton->setIcon(QIcon(":/play.png"));
ui->playButton_2->setIcon(QIcon(":/play.png"));
break;
case Phonon::BufferingState:
case Phonon::ErrorState:
break;
}
}
void MainWindow::nextFile()
{
int index = sources.indexOf(mediaObject->currentSource()) + 1;
if (index == 0)
return;
if (sources.size() > index) {
mediaObject->stop();
mediaObject->setCurrentSource(sources.at(index));
mediaObject->play();
++songFlag;
songName = files.at(songFlag);
songName = songName.section("/",-1);
ui->songLabel->setText("<font color=red>"+songName+"</font>");
}
else
{
mediaObject->stop();
mediaObject->setCurrentSource(sources.at(0));
mediaObject->play();
songFlag = 0;
songName = files.at(songFlag);
songName = songName.section("/",-1);
ui->songLabel->setText("<font color=red>"+songName+"</font>");
}
}
其余代码基本都是UI的了 没什么东西