HMI-56-【多媒体】音乐播放器 5
上一篇中实现了音乐播放的后台线程,夜里睡觉也没有睡踏实,总是感觉不合适,所以今天还是决定重新搞一下。
当前进度
播放音乐将做成一个共有的类,放在Core文件里面,后面可能会还有一个,现在我想读取音乐的信息,不知道QMediaPlayer
是否支持,如果不支持,是不是得搞FFmpeg
了呀。顺带整理了一下Core文件夹下的代码
[toc]
关键字:
HMI
、Multifunction
、Qt
、QMediaPlayer
、Music
头文件
#ifndef MULTIMEDIAMUSICTHREAD_H
#define MULTIMEDIAMUSICTHREAD_H
#include <QThread>
#include <QObject>
#include <QMediaPlayer>
class MultimediaMusicThread : public QThread
{
Q_OBJECT
public:
explicit MultimediaMusicThread(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 = ""; //音乐地址
};
#endif // MULTIMEDIAMUSICTHREAD_H
源文件
#include "multimediamusicthread.h"
#include <QDebug>
MultimediaMusicThread::MultimediaMusicThread(QObject *parent)
: QThread{parent}
{
Q_UNUSED(parent)
mediaPlayer = new QMediaPlayer(this,QMediaPlayer::LowLatency);
}
void MultimediaMusicThread::play(QString temp)
{
mUrl = temp;
this->start();
}
void MultimediaMusicThread::setVolume(int value)
{
mediaPlayer->setVolume(value);
}
void MultimediaMusicThread::stop()
{
mediaPlayer->stop();
}
void MultimediaMusicThread::pause()
{
mediaPlayer->pause();
}
void MultimediaMusicThread::run()
{
mediaPlayer->stop();
mediaPlayer->setMedia(QUrl(mUrl));
mediaPlayer->play();
}
今天就到这里了。
第三阶段成果展示
目前已完成液晶仪表三种模式的初步显示,小模块后期根据精力更新了,主要还得找美术来搞资源,自己能力不够。暂未跟新计划。展示如下:
[video(video-yznBr6e3-1648369267384)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=679609061)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/4d157e1cb316b007a2cb9790cb2dbfde.png)(title-基于Qt的汽车仪表模拟 3.0)]
B站链接:https://www.bilibili.com/video/BV1WS4y137y1/
第二阶段成果展示
目前以完成HUD界面及接口开发,液晶仪表舒适模式和运动模式的开发。展示如下:
[video(video-2AqJ88TY-1645273728489)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=594179292)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/e75563c3ce68bc980547dde8f6e265ba.png)(title-基于Qt的汽车仪表模拟 2.0)]
B站链接:https://www.bilibili.com/video/BV1aq4y1t7H7/
第一阶段成果展示
目前以完成HUD界面及接口开发,液晶仪表舒适模式开发。展示如下:
[video(video-ArCvRvBQ-1642664938100)(type-bilibili)(url-https://player.bilibili.com/player.html?aid=77197267)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/ccddd04e0cef191fd33d7f58d41adb24.png)(title-基于Qt的汽车仪表模拟 1.0))]
B站链接:https://www.bilibili.com/video/BV1qJ411X7Gs/
说明:
本项目中所使借鉴原型来自:[吉利] 博瑞GE | 仪表HMI设计、吉利汽车HMI项目。
多媒体部分是来自吉利博瑞2017旗舰版界面所有权和解释权都归吉利汽车所有。
设计图的所有权和解释权都归吉利汽车所有。
本项目所有资源文件均由打不死的小海复刻制作。
本项目代码暂时不会开源,有需要的源码的可与我联系,左上角二维码加微信。
本项目仅限学习交流、禁止商业使用。