QT之QMediaPlayer实现音乐播放功能 带工程

                                          QT之QMediaPlayer实现音乐播放功能 带工程

           QT 提供了音频播放类接口,分别是QMediaPlaylist和QMediaPlayer两个类,其中QMediaPlaylist类主要管理MP3文件,包括添加和删除等操作;QMediaPlayer 提供播放 和停止等等相关功能。通过这两个类实现了一个简单的音乐播放器,其效果如下:

实现过程如下:

1、在*.pro工程里添加multimedia和multimediawidgets。

QT       += multimedia
QT       += multimediawidgets

2、创建界面相关操作按钮和显示。添加pushButton、QSlider 、Label  、QlistWidget 等控件。


 

3、添加歌曲到listWidget,把歌曲列表添加到播放 play->addMedia(QUrl::fromLocalFile(path));中去。

void Dialog::on_pushButton_4_clicked()
{
   QStringList list=QFileDialog::getOpenFileNames(this,("文件"),currentFileName[1],("音频文件(*.mp3)"));
    if(!list.isEmpty())
   {
        ui->listWidget->clear();
        play->clear();
     for(int i=0;i<list.size();i++)
    {
        QListWidgetItem *item=new QListWidgetItem;
        item->setIcon(QIcon(":/pifu/YIN.png"));
        QString path=QDir::toNativeSeparators(list.at(i));
        if(!path.isEmpty())
        {

           QString path1 = path;
           play->addMedia(QUrl::fromLocalFile(path));
           QString Name=path.split("\\").last();
           currentFileName[1] = path1.remove(Name);
           Name.remove(QString(".mp3"));
           item->setText(QString("%1").arg(Name));
           item->setToolTip(Name);
          
           ui->listWidget->addItem(item);
           FilePath.push_back(path);


        }
    }


    }



}

4、播放和暂停功能

void Dialog::on_pushButton_2_clicked()
{


        if(ui->listWidget->count()==0)
        {
            return;
        }

       if(music->state()==QMediaPlayer::PlayingState)
        {
           ui->pushButton_2->setIcon(QIcon(":/image/pase.png"));
           ui->pushButton_2->setStyleSheet(PaseStyle());
           ui->pushButton_2->setToolTip(("暂停"));

           music->pause();


        }
        else
        {
           ui->pushButton_2->setIcon(QIcon("/image/play.png"));
           ui->pushButton_2->setStyleSheet(PlayStyle());
           ui->pushButton_2->setToolTip(("播放"));
           music->play();

        }


}

 

5、更新歌曲信息

void Dialog::updateInfo()//更新文本
{

    QString info;
    info=("正在播放:  ");
    if(music->isMetaDataAvailable())
    {
        QString title=music->metaData(QStringLiteral("Title")).toString();
        if(!title.isEmpty())
        {
            info+=title;
        }
        else
        {
            info+=("未知歌曲");
        }
        info+="-";
        QString author=music->metaData(QStringLiteral("Author")).toString();
        if(!author.isEmpty())
        {
            info+=author;
        }
        else
        {
          info+=("未知作者");
        }
    }

    ui->label->setText(info);
}

 

6、源码地址

https://download.csdn.net/download/u011996698/11834966

 

 

 

 

 

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值