天天看点

HMI-55-【多媒体】音乐播放器 4

HMI-55-【多媒体】音乐播放器 4

今天我们接着搞音乐播放器,今天主要实现音乐播放器的播放音频功能

HMI-55-【多媒体】音乐播放器 4

当前进度

今天已经使用QMediaPlayer实现了音频文件的播放,但是效果不是很理想,比如我想读取音频信息的歌手,专辑信息不知道咋读。还是有点问题,也不知道歌曲名字如何添加列表,还没有搞出来,仅仅实现了播放功能。把核心播放音频代码分析分享。

HMI-55-【多媒体】音乐播放器 4

文章目录

  • ​​HMI-55-【多媒体】音乐播放器 4​​
  • ​​当前进度​​
  • ​​头文件​​
  • ​​源文件​​
  • ​​第三阶段成果展示​​
  • ​​第二阶段成果展示​​
  • ​​第一阶段成果展示​​
关键字: ​

​HMI​

​​、​

​Multifunction​

​​、​

​Qt​

​​、​

​QMediaPlayer​

​​、​

​Music​

头文件

/**
 * @brief The MusicAduioThread class
 * 音频播放类
 */
class MusicAduioThread : public QThread
{

    Q_OBJECT

public:

    explicit MusicAduioThread(QObject *parent = nullptr);
    /**
     * @brief play
     * @param temp
     * 播放对应音频
     */
    void play(QString temp = "qrc:/Multifunction/Resources/MultifunctionDisplay/Audio/DreamLife.wav");
    /**
     * @brief setVolume
     * @param value
     * 设置音量
     */
    void setVolume(int value = 80);
    /**
     * @brief stop
     * 停止播放
     */
    void stop();
    /**
     * @brief pause
     * 暂停
     */
    void pause();
private:
    /**
     * @brief run
     * 线程函数
     */
    void run();
private:
    QMediaPlayer* mediaPlayer;          //音频播放器
    QString mUrl = "";                  //音乐地址
};      

源文件

MusicAduioThread::MusicAduioThread(QObject *parent)
{
    Q_UNUSED(parent)
    mediaPlayer = new QMediaPlayer(this,QMediaPlayer::LowLatency);
}

void MusicAduioThread::play(QString temp)
{
    mUrl = temp;
    this->start();
}


void MusicAduioThread::setVolume(int value)
{
    mediaPlayer->setVolume(value);
}

void MusicAduioThread::stop()
{
    mediaPlayer->stop();

}

void MusicAduioThread::pause()
{
    mediaPlayer->pause();
}

void MusicAduioThread::run()
{
    mediaPlayer->stop();
    mediaPlayer->setMedia(QUrl(mUrl));
    mediaPlayer->play();

}      

今天就到这里了。

第三阶段成果展示

目前已完成液晶仪表三种模式的初步显示,小模块后期根据精力更新了,主要还得找美术来搞资源,自己能力不够。暂未跟新计划。展示如下:

基于Qt的汽车仪表模拟 3.0

B站链接:​​https://www.bilibili.com/video/BV1WS4y137y1/​​

第二阶段成果展示

目前以完成HUD界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:

基于Qt的汽车仪表模拟 2.0

B站链接:​​https://www.bilibili.com/video/BV1aq4y1t7H7/​​

第一阶段成果展示

目前以完成HUD界面及接口开发,液晶仪表舒适模式开发。展示如下:

基于Qt的汽车仪表模拟 1.0)

继续阅读