1.成果展示:



2.界面操作提示

1.  2种方法把歌曲加入列表, 第一种加入本地资源,第二种 加入网上搜索的歌曲

2.  加入本地资源,点击图片  +  ,然后再本地资源里面添加歌曲

3.  网上搜索有两种方法,第一个是 直接点击, 开始识别,等按钮的文字变为停止识别之后就可以说话,说完之后,点击停止识别,就会出现搜索到的音乐,

4. 第二种方法 , 在第一个输入框里面,填入歌曲的名字,点击搜索按钮,


3.代码解析

1.都有解释

2.主要看 百度云的语音识别。 这个在这里面有 : QT 系统学习 day06 ,摄像头,语音识别(语音转文字,文字转语音,Qt 的人脸识别系统),__She001的博客-CSDN博客


4.所有的代码:

pro.文件

头文件

#ifndef PLAYER_H
#define PLAYER_H#include <QMainWindow>
/***** 多媒体音视频播放类 ****/
#include <QMediaPlayer> /*** 多媒体播放类 ***/
#include <QMediaPlaylist>/*** 多媒体播放列表类 ***/
/***** 对话框相关类 *****/
#include <QFileDialog> /** 文件对话框 ***//********** 网络相关 *********/
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
/********** JSON相关 *********/
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonValue>
/********** 多媒体相关类 ********/
#include <QMediaPlayer>
/******** 音频相关类 *********/
#include <QAudioDeviceInfo> //音频属性类
#include <QAudioFormat> //音频参数
#include <QAudioInput>  //音频输入
#include <QAudioOutput> //音频输出
/******** 文件相关类 **********/
#include <QFile>
/******** 文字转语音类 ********/
#include <QTextToSpeech>QT_BEGIN_NAMESPACE
namespace Ui { class Player; }
QT_END_NAMESPACEclass Player : public QMainWindow
{Q_OBJECTpublic:Player(QWidget *parent = nullptr);~Player();
public:void Media_Init();
private:Ui::Player *ui;QMediaPlayer *MediaPlayer; /*** 多媒体播放类 ***/QMediaPlaylist *MediaPlaylist; /*** 多媒体播放列表类 ***/QString time1; //当前时长QString time2; //总时长QNetworkAccessManager *m_http_Netease; //对接网易云的httpQMediaPlayer *m_Player;int m_musicId = -1;QNetworkAccessManager *m_http_baidu_audio; //对接百度语音/***** 百度人脸库秘钥 ****/QString AppID = "自己加";QString API_Key = "自己加";QString Secret_Key = "自己加";QString access_token = "";/***** 音频相关 ******/QAudioInput *m_AudioInput;QFile *m_file;public slots:void slot_pushButton_add();void slot_comboBox_rate(QString text);void slot_MediaPlaylist(int index);void slot_pushButton_delete();/***** 进度相关槽函数 *****/void slot_MediaPlayer_durationChanged(qint64 dura); //总时长发生改变对接该槽函数void slot_MediaPlayer_positionChanged(qint64 posi); //进度时间改变void slot_horizontalSlider_progress(int value); //进度滑块值改变对接该槽函数/***** 声音相关槽函数 *****/void slot_checkBox_volume(bool ok);void slot_discern();void slot_http_Netease_finished(QNetworkReply*);void slot_http_baidu_audio_finished(QNetworkReply *Reply);void slot_pushButton_Text();private slots:void on_pushButton_input_3_clicked();void on_pushButton_Text_3_clicked();void on_pushButton_play_4_clicked();};
#endif // PLAYER_H

.cpp 文件

#include "player.h"
#include "ui_player.h"Player::Player(QWidget *parent): QMainWindow(parent), ui(new Ui::Player)
{ui->setupUi(this);/**** 申请多媒体播放类空间 ****/MediaPlayer = new QMediaPlayer(this);//音乐播放器MediaPlaylist = new QMediaPlaylist(this);//播放队列/**** 将播放列表设置到播放器中 ****/MediaPlayer->setPlaylist(MediaPlaylist);/**** 将自带的音乐文件资源添加到播放器 ****//**** 初始化音乐播放器 ******/MediaPlayer->setVolume(ui->horizontalSlider_volume->value()); //初始化音量为UI界面的音量/**** 将Paly播放器数据输出到UI ,需要解码器的支持 *****/MediaPlayer->setVideoOutput(ui->VideoWidget);MediaPlaylist->setPlaybackMode(QMediaPlaylist::Loop);// 通过设置 播放列表循环 实现循环播放/**** 信号槽操作播放列表 *****/connect(ui->pushButton_add,SIGNAL(clicked(bool)),this,SLOT(slot_pushButton_add()));//歌曲添加本地资源按钮connect(ui->pushButton_delete,SIGNAL(clicked(bool)),this,SLOT(slot_pushButton_delete()));//播放列表删除按钮的 信号连接/**** 信号槽操作播放器 *******/connect(ui->pushButton_play,SIGNAL(clicked(bool)),MediaPlayer,SLOT(play()));//开始播放按钮connect(ui->pushButton_pause,SIGNAL(clicked(bool)),MediaPlayer,SLOT(pause()));//暂停按钮connect(ui->pushButton_stop,SIGNAL(clicked(bool)),MediaPlayer,SLOT(stop()));//停止按钮connect(ui->pushButton_next,SIGNAL(clicked(bool)),MediaPlaylist,SLOT(next()));//下一首按钮connect(ui->pushButton_previous,SIGNAL(clicked(bool)),MediaPlaylist,SLOT(previous()));//上一首按钮connect(ui->horizontalSlider_volume,SIGNAL(valueChanged(int)),MediaPlayer,SLOT(setVolume(int)));//音乐进度条改变的 信号connect(ui->comboBox_rate,SIGNAL(currentTextChanged(QString)),this,SLOT(slot_comboBox_rate(QString)));//倍速改变的 此你好连接connect(MediaPlaylist,SIGNAL(currentIndexChanged(int)),this,SLOT(slot_MediaPlaylist(int)));//音乐歌曲播放列表的改变connect(ui->listWidget,SIGNAL(currentRowChanged(int)),MediaPlaylist,SLOT(setCurrentIndex(int)));//显示的列表发生改变/************ 进度相关信号槽功能 *************/connect(MediaPlayer,SIGNAL(durationChanged(qint64)),this,SLOT(slot_MediaPlayer_durationChanged(qint64)));//歌曲总时长的改变connect(ui->horizontalSlider_progress,SIGNAL(valueChanged(int)),this,SLOT(slot_horizontalSlider_progress(int)));//播放歌曲的进度的改变connect(MediaPlayer,SIGNAL(positionChanged(qint64)),this,SLOT(slot_MediaPlayer_positionChanged(qint64)));//播放歌曲的现在的时长的改变/************ 声音按钮信号槽 ******************/connect(ui->checkBox_volume,SIGNAL(clicked(bool)),this,SLOT(slot_checkBox_volume(bool)));//播放声音的改变#if 0 //单文件MediaPlayer->setMedia(QMediaContent(QUrl("qrc:/音乐歌曲素材/噪 - 印度神曲Nijamena.mp3")));MediaPlayer->play(); /*** 播放 ***/
#endifm_http_Netease = new QNetworkAccessManager(this);connect(m_http_Netease,SIGNAL(finished(QNetworkReply*)),this,SLOT(slot_http_Netease_finished(QNetworkReply*)));/****** 配置音频参数 ******/QAudioFormat format;format.setSampleRate(16000);   //设置采样率:16000MHzformat.setChannelCount(1);      //设置采集通道数:1通道format.setSampleSize(16);      //设置样本大小:16比特format.setCodec("audio/pcm");    //设置录音格式为:pcm格式QAudioDeviceInfo info = QAudioDeviceInfo::defaultInputDevice(); /** 使用默认输入 ***/if(info.isFormatSupported(format) == false)    //检测配置是否支持该音频设备{format = info.nearestFormat(format);   //只用最接近配置的音频配置}/****** 申请音频空间 *****/m_AudioInput = new QAudioInput(format,this);/****** HTTP网络访问类初始化 *****/m_http_baidu_audio = new QNetworkAccessManager(this);connect(m_http_baidu_audio,SIGNAL(finished(QNetworkReply*)),this,SLOT(slot_http_baidu_audio_finished(QNetworkReply*)));QString url("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%1&client_secret=%2&");url = url.arg(API_Key,Secret_Key);m_http_baidu_audio->get(QNetworkRequest(QUrl(url))); //获取 access_token}/************ 处理HTTP 请求的返回值 **************/
void Player::slot_http_Netease_finished(QNetworkReply *Reply)//处理网易音乐的 网络的返回信息
{QByteArray data = Reply->readAll();m_musicId = -1;/********* 将数据转换 ***************/QJsonObject JsonObject = QJsonDocument::fromJson(data).object();/********* 将数据输出到 UI 控件中 ***********/ui->textEdit->setText(QJsonDocument::fromJson(data).toJson());/********* 将获取ID ***************/if(JsonObject.find("result") != JsonObject.end()){JsonObject = JsonObject["result"].toObject();JsonObject = JsonObject["songs"].toArray()[0].toObject();m_musicId = JsonObject["id"].toInt();ui->lineEdit_id_3->setText(JsonObject["name"].toString() + ":" + QString::number(m_musicId));}
}void Player::slot_http_baidu_audio_finished(QNetworkReply *Reply)//百度云语音识别的的网络回应 接收函数, 判断是否接收成功, 而且返回语音识别的结果
{// 响应的状态码为 200 , 表示请求成功int stat = Reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();QByteArray Reply_data = Reply->readAll();qDebug() << QJsonDocument::fromJson(Reply_data).toJson() << endl;if(stat == 200) /*** 成功数据 ***/{//获取响应信息QByteArray byteArray = QString(Reply_data).toUtf8();QJsonDocument JsonDocument = QJsonDocument::fromJson(byteArray); //转为JSON格式字符串if(JsonDocument.isObject() == true){QJsonObject JsonObject = JsonDocument.object();if(JsonObject.find("access_token") != JsonObject.end()){access_token = JsonObject["access_token"].toString();qDebug() << "access_token:" << access_token << endl;}qDebug()<<"dasda";if(JsonObject.find("err_msg") != JsonObject.end() && JsonObject.find("result") != JsonObject.end()){QJsonArray JsonArray = JsonObject["result"].toArray();QString result = JsonArray[0].toString();/***** 判断结果 *****/ui->lineEdit_3->setText(result);slot_pushButton_Text();}}}
}void Player::slot_pushButton_Text()//语音识别之后,我们按下这个按键,之后向网易云发送请求,查询歌曲
{QString s;QString str;s = ui->lineEdit_3->text();str = "http://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s={"+s+"}&type=1&offset=0&total=true&limit=1";//接入网易云API并且传入需要搜索的数据和返回的数量QNetworkRequest request(str);          //定义一个请求对象m_http_Netease->get(request); /*** 发送音乐搜索请求 ***/}void Player::slot_horizontalSlider_progress(int value)//设置播放进度条  使用connect  连接函数  播放时间变化的方法触发 进度条的变化
{if(ui->horizontalSlider_progress->isSliderDown() == true){MediaPlayer->setPosition(value);}
}void Player::slot_checkBox_volume(bool ok)//声音的选中框的 的功能, 实现 静音操作
{MediaPlayer->setMuted(ok);if(ok == true){ui->checkBox_volume->setIcon(QIcon(":/音乐播放器图片素材/jingyin.png")); //静音}else{ui->checkBox_volume->setIcon(QIcon(":/音乐播放器图片素材/shengyin.png")); //开声音}
}/******** 时间转换函数 *******/
void time_cycle(QString &time,qint64 msec)
{/**** 计算总时间 ****/int seconds = msec / 1000; //秒钟int minute = seconds / 60; //分钟int hour = minute / 60 % 24; //小时if(hour == 0){time = QString::number(minute%60) + ":" + QString::number(seconds%60);}else{time = QString::number(hour%24) + ":" + QString::number(minute%60) + ":" + QString::number(seconds%60);}
}void Player::slot_MediaPlayer_durationChanged(qint64 dura)//歌曲总时长的计算
{ui->horizontalSlider_progress->setMaximum(dura);time_cycle(time2,dura); /** 调用时间转换算法 函数**/ui->label_ratio->setText(time1 + "/" + time2);ui->label_name->setText(ui->listWidget->currentItem()->text());
}void Player::slot_MediaPlayer_positionChanged(qint64 posi)//歌曲当前播放的事件
{ui->horizontalSlider_progress->setValue(posi);time_cycle(time1,posi); /** 调用时间转换算法 函数**/ui->label_ratio->setText(time1 + "/" + time2);
}void Player::slot_pushButton_delete()//删除显示列表,与播放列表里面的东西
{int row = ui->listWidget->currentRow();delete ui->listWidget->takeItem(row);MediaPlaylist->removeMedia(row);
}void Player::slot_MediaPlaylist(int index)//列表添加音乐的背景 就是选中的状态
{int row = index;ui->listWidget->setCurrentRow(row);
}void Player::slot_comboBox_rate(QString text) //调节音乐的速度
{float rate = text.toFloat();MediaPlayer->setPlaybackRate(rate);
}void Player::Media_Init()//添加的本地资源初始化
{{QUrl url("qrc:/音乐歌曲素材/噪 - 印度神曲Nijamena.mp3");ui->listWidget->addItem(url.fileName()); //将文件名添加到 ListWidget 的UI控件显示MediaPlaylist->addMedia(QMediaContent(url)); //将文件添加到里面}{QUrl url("qrc:/音乐歌曲素材/果冻 - 成功没有退路.mp3");ui->listWidget->addItem(url.fileName()); //将文件名添加到 ListWidget 的UI控件显示MediaPlaylist->addMedia(QMediaContent(url)); //将文件添加到里面}{QUrl url("qrc:/音乐歌曲素材/蒋蒋 _ 朱贺 - 爱德华的小说.mp3");ui->listWidget->addItem(url.fileName()); //将文件名添加到 ListWidget 的UI控件显示MediaPlaylist->addMedia(QMediaContent(url)); //将文件添加到里面}
}void Player::slot_pushButton_add()//本来的音乐添加资源
{QList<QUrl> file_Urls = QFileDialog::getOpenFileUrls(this,"添加音乐",QUrl("C:\\Users\\Administrator\\Music"),"音乐 (*.mp3 *.WAV) ;;视频 (*.mp4 *.avi) ;;所有文件 (*.*)");for(int i = 0; i < file_Urls.size() ; i++){ui->listWidget->addItem(file_Urls[i].fileName()); //将文件名添加到 ListWidget 的UI控件显示MediaPlaylist->addMedia(QMediaContent(file_Urls[i])); //将文件添加到里面}
}Player::~Player()//析构函数
{delete ui;
}void Player::slot_discern()//语音识别 发送请求
{/***** 读取音频文件 *****/m_file = new QFile("./录音.wav");m_file->open(QIODevice::ReadWrite);if(m_file->isOpen() == false){ //打开失败delete m_file;return ;}QByteArray requestData = m_file->readAll(); //读取文件所有内容m_file->close();;;;;QString buf = requestData.toBase64(); //转码 BASE 64/****** 组装网址 **************/QUrl url("http://vop.baidu.com/server_api");/****** 组装JSON *************/QJsonObject json;json["format"] = "pcm";json["rate"] = 16000;json["dev_pid"] = 1537;json["channel"] = 1;json["token"] = access_token;json["cuid"] = "q12993";json["len"] = requestData.size(); //语音文字真是的byte长度json["speech"] = buf;/****** 设置头部 **********/QNetworkRequest Request(url);Request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");QByteArray send_json = QJsonDocument(json).toJson();m_http_baidu_audio->post(Request,send_json);}void Player::on_pushButton_input_3_clicked()//语音识别 的按键操作, 设置按键的名字
{if(ui->pushButton_input_3->text() == "开始识别"){m_file = new QFile("./录音.wav");m_file->open(QIODevice::ReadWrite | QIODevice::Truncate);if(m_file->isOpen() == false){ //打开失败delete m_file;return ;}m_AudioInput->start(m_file);ui->pushButton_input_3->setText("停止识别");}else if(ui->pushButton_input_3->text() == "停止识别"){m_AudioInput->stop();//关闭录制m_file->close(); //关闭文件ui->pushButton_input_3->setText("开始识别");slot_discern(); /** 将语音上传百度云识别 **/}
}void Player::on_pushButton_Text_3_clicked()//搜索  音乐网上搜索
{QString s;QString str;s = ui->lineEdit_3->text();//输入框的内容str = "http://music.163.com/api/search/get/web?csrf_token=hlpretag=&hlposttag=&s={"+s+"}&type=1&offset=0&total=true&limit=1";//接入网易云API并且传入需要搜索的数据和返回的数量QNetworkRequest request(str);          //定义一个请求对象m_http_Netease->get(request); /*** 发送音乐搜索请求 ***/
}void Player::on_pushButton_play_4_clicked()//播放语音
{if(m_musicId == -1) return ;QString url;url=QString("https://music.163.com/song/media/outer/url?id=%1").arg(QString::number(m_musicId));//通过网网易云API传入之前返回的歌曲的ID实现播放qDebug() << "请求语音链接:" << url << endl;/***** 通过网络方式获取网易云的音乐链接 *******/
//    m_Player->setMedia(QUrl(url)); //添加一音乐到播放列表中
//    m_Player->play(); //播放QString kkk=ui->lineEdit_id_3->text();if(kkk!=""){kkk=kkk.left(kkk.lastIndexOf(":"));ui->listWidget->addItem(kkk); //将文件名添加到 ListWidget 的UI控件显示MediaPlaylist->addMedia(QMediaContent(url)); //将文件添加到里面}}

mian.cpp

#include "player.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Player w;w.show();return a.exec();
}

ui 设计界面

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Player</class><widget class="QMainWindow" name="Player"><property name="geometry"><rect><x>0</x><y>0</y><width>940</width><height>799</height></rect></property><property name="windowTitle"><string>音视频播放器</string></property><property name="windowIcon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/bofangqi_1.png</normaloff>:/音乐播放器图片素材/bofangqi_1.png</iconset></property><widget class="QWidget" name="centralwidget"><layout class="QVBoxLayout" name="verticalLayout_4"><item><widget class="QSplitter" name="splitter"><property name="orientation"><enum>Qt::Horizontal</enum></property><widget class="QGroupBox" name="groupBox"><property name="title"><string>播放列表</string></property><layout class="QVBoxLayout" name="verticalLayout"><item><layout class="QHBoxLayout" name="horizontalLayout"><item><widget class="QPushButton" name="pushButton_add"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/biaoqing.png</normaloff>:/音乐播放器图片素材/biaoqing.png</iconset></property><property name="iconSize"><size><width>48</width><height>48</height></size></property></widget></item><item><widget class="QPushButton" name="pushButton_delete"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/shanchu.png</normaloff>:/音乐播放器图片素材/shanchu.png</iconset></property><property name="iconSize"><size><width>48</width><height>48</height></size></property></widget></item><item><widget class="QPushButton" name="pushButton_clear"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/qingkong.png</normaloff>:/音乐播放器图片素材/qingkong.png</iconset></property><property name="iconSize"><size><width>48</width><height>48</height></size></property></widget></item></layout></item><item><widget class="QListWidget" name="listWidget"/></item></layout></widget><widget class="QFrame" name="frame"><property name="frameShape"><enum>QFrame::StyledPanel</enum></property><property name="frameShadow"><enum>QFrame::Raised</enum></property><property name="lineWidth"><number>1</number></property><layout class="QVBoxLayout" name="verticalLayout_5"><item><widget class="QSplitter" name="splitter_2"><property name="orientation"><enum>Qt::Vertical</enum></property><widget class="QVideoWidget" name="VideoWidget" native="true"><property name="minimumSize"><size><width>0</width><height>400</height></size></property><widget class="QWidget" name="widget_2" native="true"><property name="geometry"><rect><x>10</x><y>10</y><width>541</width><height>361</height></rect></property><layout class="QVBoxLayout" name="verticalLayout_6"><item><layout class="QHBoxLayout" name="horizontalLayout_12"><item><widget class="QLineEdit" name="lineEdit_3"><property name="placeholderText"><string>请输入要搜索的歌曲</string></property></widget></item><item><widget class="QPushButton" name="pushButton_input_3"><property name="text"><string>开始识别</string></property></widget></item><item><widget class="QPushButton" name="pushButton_Text_3"><property name="text"><string>搜索</string></property></widget></item></layout></item><item><layout class="QHBoxLayout" name="horizontalLayout_11"><item><widget class="QLineEdit" name="lineEdit_id_3"/></item><item><widget class="QPushButton" name="pushButton_play_4"><property name="text"><string>加入列表</string></property></widget></item></layout></item><item><widget class="QTextEdit" name="textEdit"/></item></layout></widget></widget><widget class="QWidget" name="widget" native="true"><layout class="QVBoxLayout" name="verticalLayout_3"><item><widget class="QGroupBox" name="groupBox_2"><property name="title"><string>播放操作</string></property><layout class="QVBoxLayout" name="verticalLayout_2"><item><layout class="QHBoxLayout" name="horizontalLayout_4"><item><layout class="QHBoxLayout" name="horizontalLayout_2"><item><widget class="QPushButton" name="pushButton_play"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/bofang.png</normaloff>:/音乐播放器图片素材/bofang.png</iconset></property><property name="iconSize"><size><width>24</width><height>24</height></size></property></widget></item><item><widget class="QPushButton" name="pushButton_pause"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/zanting.png</normaloff>:/音乐播放器图片素材/zanting.png</iconset></property><property name="iconSize"><size><width>24</width><height>24</height></size></property></widget></item><item><widget class="QPushButton" name="pushButton_stop"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/tingzhi.png</normaloff>:/音乐播放器图片素材/tingzhi.png</iconset></property><property name="iconSize"><size><width>24</width><height>24</height></size></property></widget></item><item><widget class="QPushButton" name="pushButton_previous"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/shangyiqu.png</normaloff>:/音乐播放器图片素材/shangyiqu.png</iconset></property><property name="iconSize"><size><width>24</width><height>24</height></size></property></widget></item><item><widget class="QPushButton" name="pushButton_next"><property name="text"><string/></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/xiayiqu.png</normaloff>:/音乐播放器图片素材/xiayiqu.png</iconset></property><property name="iconSize"><size><width>24</width><height>24</height></size></property></widget></item></layout></item><item><layout class="QHBoxLayout" name="horizontalLayout_3"><item><spacer name="horizontalSpacer_2"><property name="orientation"><enum>Qt::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item><item><widget class="QLabel" name="label"><property name="text"><string>倍速x</string></property></widget></item><item><widget class="QComboBox" name="comboBox_rate"><item><property name="text"><string>1</string></property></item><item><property name="text"><string>2</string></property></item><item><property name="text"><string>4</string></property></item><item><property name="text"><string>8</string></property></item></widget></item><item><spacer name="horizontalSpacer_3"><property name="orientation"><enum>Qt::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item></layout></item></layout></item><item><layout class="QHBoxLayout" name="horizontalLayout_5"><item><widget class="QCheckBox" name="checkBox_volume"><property name="text"><string>音量</string></property><property name="icon"><iconset resource="res.qrc"><normaloff>:/音乐播放器图片素材/shengyin.png</normaloff>:/音乐播放器图片素材/shengyin.png</iconset></property><property name="iconSize"><size><width>24</width><height>24</height></size></property><property name="checked"><bool>false</bool></property><property name="tristate"><bool>false</bool></property></widget></item><item><widget class="QSlider" name="horizontalSlider_volume"><property name="maximum"><number>100</number></property><property name="value"><number>80</number></property><property name="orientation"><enum>Qt::Horizontal</enum></property></widget></item><item><spacer name="horizontalSpacer"><property name="orientation"><enum>Qt::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item></layout></item></layout></widget></item><item><widget class="QGroupBox" name="groupBox_3"><property name="title"><string>进度操作</string></property><layout class="QHBoxLayout" name="horizontalLayout_6"><item><widget class="QLabel" name="label_name"><property name="minimumSize"><size><width>140</width><height>0</height></size></property><property name="text"><string>名字:</string></property></widget></item><item><widget class="QLabel" name="label_2"><property name="text"><string>进度</string></property></widget></item><item><widget class="QSlider" name="horizontalSlider_progress"><property name="orientation"><enum>Qt::Horizontal</enum></property></widget></item><item><widget class="QLabel" name="label_ratio"><property name="text"><string>比例</string></property></widget></item></layout></widget></item></layout></widget></widget></item></layout></widget></widget></item></layout></widget><widget class="QMenuBar" name="menubar"><property name="geometry"><rect><x>0</x><y>0</y><width>940</width><height>26</height></rect></property></widget><widget class="QStatusBar" name="statusbar"/></widget><customwidgets><customwidget><class>QVideoWidget</class><extends>QWidget</extends><header>qvideowidget.h</header><container>1</container></customwidget></customwidgets><resources><include location="res.qrc"/></resources><connections/>
</ui>



资源文件已经上传 (图片里面有)

QT 基于 百度云语音识别, 基于网易API 接口的歌曲查询,的音乐播放器。相关推荐

  1. 基于开源网易云API+Flutter写的一款音乐播放器

    历时2个多月,基于开源网易云API的一款使用Flutter开发的桌面音乐程序终于完成了它的第一个版本v1.0.0

  2. 基于开源网易云API+Flutter写的一款音乐播放器(二)

    历时2个多月,基于开源网易云API的一款使用Flutter开发的桌面音乐程序终于完成了它的第一个版本v1.0.0

  3. 基于百度云人脸识别API与opencv的人脸识别系统

    基于百度云人脸识别API与opencv的人脸识别系统 简介 弄这个东西是因为参加了学校的项目,第一次开发做的不是很好. 本系统是基于百度云人脸识别API.opencv级联器.PYQT5进行开发.百度云 ...

  4. python百度云ocr文字识别软件_基于百度云的OCR识别(Python)

    2019年7月3日早上,在百度AI开发者大会上,一个来自山西的青年,将一瓶矿泉水浇在了同样来自山西的李彦宏身上. 可以回顾一下 https://b23.tv/av57665929/p1 ,着实让人一惊 ...

  5. 树莓派实现语音识别与语音合成——百度云语音识别API

    本文采用百度云语音识别API接口,实现低于60s音频的语音识别,也可以用于合成文本长度小于1024字节的音频,此外采用snowboy离线语音唤醒引擎可实现离线语音唤醒,实现语音交互.基于本内容可实现语 ...

  6. Android 高仿微信实时聊天 基于百度云推送

    一直在仿微信界面,今天终于有幸利用百度云推送仿一仿微信聊天了~~~ 首先特别感谢:weidi1989分享的Android之基于百度云推送IM ,大家可以直接下载:省了很多事哈,本例中也使用了weidi ...

  7. Ocr 图文识别技术——基于百度云OCR技术学习与总结

                                                               Ocr 图文识别技术--基于百度云OCR技术学习与总结 1.百度智能云 控制台   ...

  8. 微信小程序基于百度云实现图文识别(胎教级教程)

    前言 最近开发微信小程序用到了图文识别的功能,刚开始还觉得很难,但其实配合一些第三方api接入,实现这个功能还是很简单的,下面我们一起来看看要怎么实现这个小功能吧. 1.首先我们需要注册一个百度云账号 ...

  9. 基于百度云通过Python实现简单的营业执照识别

    先前在做图像文字识别这个需求的时候发现到百度云提供的SDK有一些有趣的小功能,提供了一些接口能实现身份证.银行卡.驾驶证.行驶证等图像识别,都尝试着玩了一下,发现营业执照的问题比较多,就以此为例简单写 ...

最新文章

  1. 数字证书采用公钥体制进行加密和解密。每个用户有一个私钥,用它进行 (46)。。。
  2. Go语言中的匿名函数和闭包的样子
  3. iOS开发- 蓝牙后台接收数据(BLE4.0)
  4. PPT怎么在线转视频?
  5. 微服务认证架构如何演进来的?
  6. JAVA图书管理系统(I/O流实现)
  7. UI-148xLE-M相机参数
  8. 【基础数据库】经济行业分类
  9. PostgreSQL 创建数据库
  10. 有两个水桶,一个可装7升水,一个装水3升,怎样量出2升
  11. ICMP协议和ARP协议
  12. C++——oop思想
  13. 属性管理器没有Microsoft.Cpp.x64.user的解决办法
  14. 【裸SPFA】星门跳跃
  15. java 判断两个字符串相等
  16. JAVA加密--JCA、JCE、CSP概念、体系架构与使用示例
  17. Windows程式开发设计指南(十五)与装置无关的点阵图
  18. X264码率控制总结1——ABR,CQP,CRF
  19. Python实现SVM的实例(包括网格调参和测试)总结综述
  20. 影石创新在科创板递交招股书注册稿,共有492件专利申请信息

热门文章

  1. 计算机微机组装与维护形考1,最新国开电大《ERP原理与应用》形考任务实验1至5作业及答案...
  2. 前端页面的几种常用布局
  3. [ 云计算 华为云 ] 华为云开天 aPaaS:构建高效的企业数字化平台(下)
  4. Ubuntu设置IP地址、网关、DNS
  5. 爱聊语音聊天室为什么用不了摄像头?
  6. 索尼xzp升级android p,索尼XZP国行版升级安卓8.0 相机功能优化
  7. The Sandbox 与 Design Egg 达成合作,将共同建立虚拟空间 Como 小小世界
  8. 原生M1芯片Mac版Maxon Cinema 4D R26 C4D中文直装版安装教程,解决卡启动画面无法打卡等问题
  9. 模拟电路58(方波产生电路与锯齿波产生电路)
  10. cucumber生成测试报告