qt5.2音乐播放器的播放功能

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<
  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值