Qt实现的音乐播放器 C++

Qt实现的音乐播放器

实现了众多功能,使用qmediaplayer添加歌曲、添加喜欢列表、生成播放记录,实现歌曲的下一首上一首播放以及列表循环模式,双击歌曲进行播放。使用正则表达式对lrc歌词文件解析,使得歌词根据时间变化完成滚动,通过qslider实现歌曲进度条以及音量调节等等功能。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

完整代码:https://github.com/Ytlskys/MusicPlayer
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Qt是一个跨平台的C++应用程序框架,它提供了一套丰富的类库,可以用来开发各种类型的应用程序,包括音乐播放器实现一个基本的音乐播放器,需要完成以下几个步骤: 1. 使用Qt的Multimedia模块创建一个QMediaPlayer对象,并设置音频文件路径。 2. 创建一个QWidget对象作为主窗口,并添加QMediaPlaylist对象作为播放列表,将QMediaPlayer对象与QMediaPlaylist对象关联起来。 3. 添加一些控件,如播放/暂停按钮、下一曲/上一曲按钮、进度条等,通过槽函数与QMediaPlayer对象连接起来。 4. 编写槽函数,处理控件的点击事件和QMediaPlayer对象的信号,实现音乐播放、暂停、停止、下一曲、上一曲等功能。 以下是一个简单的示例代码,实现了一个基本的音乐播放器: ``` #include <QtWidgets> #include <QtMultimedia> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建QMediaPlayer对象 QMediaPlayer *player = new QMediaPlayer; // 创建播放列表 QMediaPlaylist *playlist = new QMediaPlaylist; playlist->addMedia(QUrl::fromLocalFile("song1.mp3")); playlist->addMedia(QUrl::fromLocalFile("song2.mp3")); playlist->setCurrentIndex(0); player->setPlaylist(playlist); // 创建主窗口 QWidget *window = new QWidget; QVBoxLayout *layout = new QVBoxLayout(window); // 添加控件 QPushButton *playButton = new QPushButton("Play"); QPushButton *pauseButton = new QPushButton("Pause"); QPushButton *stopButton = new QPushButton("Stop"); QSlider *slider = new QSlider(Qt::Horizontal); QLabel *label = new QLabel("0:00 / 0:00"); layout->addWidget(playButton); layout->addWidget(pauseButton); layout->addWidget(stopButton); layout->addWidget(slider); layout->addWidget(label); // 连接信号与槽函数 QObject::connect(playButton, &QPushButton::clicked, player, &QMediaPlayer::play); QObject::connect(pauseButton, &QPushButton::clicked, player, &QMediaPlayer::pause); QObject::connect(stopButton, &QPushButton::clicked, player, &QMediaPlayer::stop); QObject::connect(player, &QMediaPlayer::positionChanged, [=](qint64 pos){ slider->setValue(pos); label->setText(QString("%1 / %2").arg(pos / 1000).arg(player->duration() / 1000)); }); QObject::connect(slider, &QSlider::sliderMoved, player, &QMediaPlayer::setPosition); window->show(); return app.exec(); } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值