用Qt写一个简单的音乐播放器(一):使用QMediaPlayer播放音乐

16 篇文章 9 订阅

一、前言

QMediaplayer可以用于解析音频文件和视频文件,继承自QMediaObject,涉及到的对象为QMediaContent。QMediaObject可以提供关于媒体内容的接入,通过URL进行初始化,同时也可以提供可以播放的媒体文件的列表,与QMediaplayer对象息息相关。

二、准备

1.Windows系统:

win10
在这里插入图片描述

2.Qt版本

Qt 5.11.1
在这里插入图片描述

3.LAV Filters

如果你的系统中没有LAV Filters,那么请安装,否则可能会报如下错误
DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80070002 ()
下载地址:http://files.1f0.de/lavf/LAVFilters-0.65.exe
将其安装到Qt安装目录下,如图所示:
在这里插入图片描述

三、过程

1.新建工程

如图所示:点击New Project新建工程
在这里插入图片描述
如下图所示,选择Qt Widgets Application
在这里插入图片描述
如下图所示,选择工程路径 ,并给它起一个名字
在这里插入图片描述
然后下一步下一步直到出现如图所示的工程界面。
在这里插入图片描述

2.播放音乐

在工程.pro文件中添加
QT += multimedia
不然可能会报错(理论上来说百分百报错)
例如这样:
报错 error: C1083: 无法打开包括文件:“QMediaPlayer”: No such file or directory
在这里插入图片描述
然后,我们先把自动生成的界面相关的代码注释起来,暂时在(一)这里,我们先不写界面。在这里插入图片描述
如下图所示
加入我们需要的代码

#include "mainwindow.h"
#include <QApplication>
#include <QtMultimedia/QMediaPlayer> // 包含头文件
int main(int argc, char *argv[])
{
    QMediaPlayer m_mediaPlayer; // 实例化对象
    m_mediaPlayer.setMedia(QUrl::fromLocalFile("D:\\music\\BIGBANG - LOSER (Live).mp3")); // 添加要播放的音乐文件
    m_mediaPlayer.play(); // 播放音乐文件
    while(1){} // 使程序一直执行
    return 0;
}

在这里插入图片描述

四、使用

如图所示,
点击图中的绿色小三角,程序运行,音乐播放
点击图中的红色小方块,程序终止,音乐停止
在这里插入图片描述

五、拓展

在(二)中,将增加一些简单的图形界面,增加交互性,提高实用性。
文章(二)今天或明天发,大家多多包涵。
用Qt写一个简单的音乐播放器(二):增加界面(开始和暂停音乐)

1 关于 Easy Player: Easy Player 是由于个人兴趣而制作的一款基于Qt的在线音乐播放器 目前是第一个版本 并未进行足量优化 因此 在使用过程中可能存在某些Bug 请谅解 2 功能介绍: 目前功能支持歌曲在线搜索 单曲循环(其他循环方式后期添加) 添加搜索结果到试听列表 下载音乐到本地 歌词同步显示 还不能同步滚动 3 使用方法: (1)首先 从按钮说起: 左边第一排:播放(暂停) 下一首 单曲循环 下载当前歌曲 歌词显示; 左边第二排:音量键 右边第一排:歌曲时间轴 (2)其次 搜索: “歌曲特征”输入关键词搜索 会呈现搜索结果在搜索列表 搜索列表右边的按钮表示添加歌曲到播放列表 (3)最后 播放列表: 在歌曲列表中双击歌曲播放 右边的按钮表示下载歌曲 目前是下载完成之后才会提示 之后会做一个下载列表界面 4 其他 本来打算在下载的时候加入多线程 另外加一个数据库保存播放信息 但由于时间关系 并没有在这个版本加入 之后的版本会不断完善 欢迎大家下载测试和提意见 声明:代码仅供参考 请尊重原创 作者:Reyn 博客地址:http: blog csdn net jan5 reyn">1 关于 Easy Player: Easy Player 是由于个人兴趣而制作的一款基于Qt的在线音乐播放器 目前是第一个版本 并未进行足量优化 因此 在使用过程中可能存在某些Bug 请谅解 2 功能介绍: 目前功能支持歌曲在线搜索 单曲 [更多]
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值