Qt 音乐播放器

一、实现功能:
1、读取歌曲文件,实现歌曲的播放;
2、采用Qt Designer实现歌曲的暂停和播放,歌曲名列表和当前播放歌曲名的显示,上一曲和下一曲歌曲的更换,播放模式的设置,音量的改变,歌曲播放进度的改变;
3、读取歌词文件,实现歌词的显示;
4、利用QSetting增加歌曲文件和歌词文件的设置功能;
5、界面汉化;
6、使用CSS进行界面美化。

二、实现:
1、创建工程
1> 单击运行 Qt Creator,进入欢迎界面,单击 “New Project”,创建一个新的工程。
1-1 创建一个新工程,建立一个桌面项目
2> 单击选择项目“Application”->“Qt Widgets Application”选项,单击”choose”。
1-2 保存项目
3> 选择项目路径,并自定义自己项目的名字。注意,保存项目路径中不能有中文字。项目命名没有大小写要求。单击下一步。
4> 弹出“Kit Selection”界面,系统已经默认指定C++编译器和调试器,单击下一步。
5> 根据实际需要,选择一个“基类”。这里选择QWidget对话框类作为基类。勾选“创建界面”复选框,表示需要采用自带的界面设计器来设计界面,否则需要利用代码完成界面的设计。
6> 单击“下一步”,然后单击“完成”。

2、界面设计:
双击 musicwidget.ui ,进入界面设计器Qt Designer编辑状态,进行设计器编程。
通过拖拽空间容器栏的控件设计界面。
2-1 界面的简单设计
根据自己的需要,可以修改控件的属性。

3、为了编写程序以及查看路径的方便,可以自定义makefile的路径。
单击“项目”->“构建目录”,在工程目录下,新建output目录,将makefile的路径自定义为output。
3-1 makefile的路径修改

4、将歌曲文件和歌词文件复制在工程目录下。

5、资源层
通过读取歌曲文件,实现音乐的播放。
在 “项目”栏下,右键 工程文件名,添加新文件(歌曲文件)
选择“C++ Class”->“choose”
5-1 添加歌曲文件类
1> 文件操作

songsfile.cpp

#include "songsfile.h"

QString Songsfile::m_songsPath = tr("../song/");

Songsfile::Songsfile(QObject *parent) : QObject(parent)
{
    m_songFormat = tr(".mp3");
    m_songDir = QDir(m_songsPath);

    m_songsList = m_songDir.entryInfoList(QStringList() << "*.mp3",
                                      QDir::Files, QDir::Name);
}

void Songsfile::initSongListAndSongNameList(QMediaPlaylist &m_songsPlayList,
                                 QStringList &m_songsNameList)
{

    foreach (QFileInfo fileInfo, m_songsList)
    {
        m_songsNameList.append(fileInfo.fileName().remove(".mp3"));

        QUrl song = QUrl::fromLocalFile(fileInfo.absoluteFilePath());

        if (fileInfo.exists())
        {
            if (fileInfo.suffix().toLower() == QLatin1String("m3u"))  //后缀
            {
                m_songsPlayList.load(song);
            }else
            {
                m_songsPlayList.addMedia(song);
            }
        }else
        {
            if (song.isValid())
            {
                m_songsPlayList.addMedia(song);
            }
        }
    }

}

2> 我们使用qt提供的多媒体库,
在 .pro 文件中添加库,

QT       += core gui multimedia

3> 实现歌曲播放

musicwidget.cpp

m_songsfile->initSongListAndSongNameList(m_songsPlayList, m_songsNameList);

    m_musicPlayer.setMedia(&m_songsPlayList);
    m_musicPlayer->getSongsPlayList().setCurrentIndex(0); 
    m_musicPlayer.play();
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值