QT制作音乐播放器的相关知识点
获取媒体对象播放进度的方法:
- QMediaPlayer::position()。
该方法返回一个qint64(64位整数,可以近似理解为int)类型。
设置进度的方法是:
- QMediaPlayer::setPosition(qint64 position)。
设置当前播放媒体的方法:
- QMediaPlayer::setMedia(QMediaContent &media,QIODevice *stream = QNULLPTR)。
第二个参数默认即可。
第一个参数是一个QMediaContent对象,封装了媒体文件信息。
这个对象可以通过QMediaContent(QUrl url)来创建。QUrl可以是一个本地的文件,也可以是网络上的文件。
切换播放状态的的方法:
- QMediaPlayer::play()
- QMediaPlayer::pause
- QMediaPlayer::stop()
QMediaPlayer中定义的两个重要的枚举类型State和MediaStatus :
- State包含着当前的播放状态,有 { StoppedState, PlayingState, PausedState }三种状态,可以通过state()函数获取。
- MediaStatus包含当前媒体文件的有效性
有 { UnknownMediaStatus, NoMedia, LoadingMedia, LoadedMedia, …, InvalidMedia }等状态,
可以通过mediaStatus()方法获取。
QMediaPlaylist
QMediaPlaylist是一个列表,
它可以保存媒体文件,包括媒体路径等信息,
它具有着列表的性质,比如添加删除插入等,但它能做的,比单纯的储存要多得多。
设置播放顺序,对播放的控制,保存到本地,从本地读取,都可以很方便地实现。
用QMediaPlaylist 添加媒体文件可以使用 addMedia 方法。方法接收一个QMediaContent的对象引用
- playlist->addMedia(QMediaContent(QUrl("http://example.com/movie1.mp4")));
- playlist->addMedia(QMediaContent(QUrl("http://example.com/movie2.mp4")));
- playlist->addMedia(QMediaContent(QUrl("http://example.com/movie3.mp4")));
此时新添加的媒体被插入到列表的最后。
同样的也有指定位置的插入方法。除了QMediaContent对象引用,还需要指定插入位置。
- playlist->insertMedia(2,QMediaContent(QUrl("http://example.com/movie4.mp4")));
方法clear()可以清除所有的媒体对象。
而希望精确地删除媒体,就要用到 removeMedia 方法。
方法有两个版本,
第一个版本接收一个int变量作为被删除媒体的位置,
另一个版本接收两个int变量,删除这两个索引之间的所有媒体对象。
- playlist->removeMedia(3);//删除位置索引为3的媒体对象
- playlist->removeMedia(0,2);//删除位置索引为0,1,2的媒体对象;
- playlist->clear();//清空列表
Playlist的高级操作。
我们知道,现在的播放器一般都有选择播放顺序的功能,
除了最基本的顺序播放,还有单曲循环、随机播放等模式。
现在只需要调用 setPlaybackMode(PlaybackMode mode) 这个方法,就可以设置播放顺序。
方法接收枚举类型PlaybackMode作为播放顺序。
名称 | 枚举值 | 说明 |
---|---|---|
QMediaPlaylist::CurrentItemOnce
|
0
|
单曲播放 |
QMediaPlaylist::CurrentItemInLoop
|
1
|
单曲循环 |
QMediaPlaylist::Sequential
|
2
|
顺序播放 |
QMediaPlaylist::Loop
|
3
|
列表循环 |
QMediaPlaylist::Random
|
4
|
随机播放 |
调用 next() 和 previous() 方法,可以实现按照播放模式进行当前播放的手动切换。
当一个媒体播放完毕时,会自动地调用next()方法。
将一个QMediaPlaylist设置进QMediaPlayer
- player.setPlaylist(playlist);
- player.play();//播放playlist当前媒体
QT制作音乐播放器的相关知识点相关推荐
- 树莓派3B qt+mplayer制作音乐播放器(10)
内容 树莓派3B qt+mplayer制作音乐播放器:播放.暂停.上一曲.下一曲,音量调节. 平台:树莓派+qt+mplayer 1.配置 qt安装见此: https://blog.csdn.net/ ...
- 基于Qt的音乐播放器制作
基于Qt的音乐播放器制作 使用浏览器自带工具抓包歌曲资源 开发人员工具抓包 点击浏览器右上角的 "-" 快捷键(Alt + F): 点击其中的"更多工具" ➡ ...
- 基于Qt的音乐播放器(二)切换歌曲,调节音量,调节语速,暂停
2020博客之星年度总评选进行中:请为74号的狗子投上宝贵的一票! 我的投票地址:点击为我投票 文章目录 1.切换歌曲 2.调节音量 3.调节语速 4.播放/暂停 5.我们来看下效果 6.关于上一篇提 ...
- winform制作音乐播放器
winform制作音乐播放器 本文利用C# 调用Windows自带的Windows Media Player 打造一款属于自己的音乐播放器,以供学习分享使用,如有不足之处,还请指正. 概述 Windo ...
- Qt+MPlayer音乐播放器开发笔记(二):交叉编译MPlayer以及部署到开发板播放演示
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/119991329 长期持续带来更多项目与技术分享,咨询请 ...
- 【QT的音乐播放器(简单版)】
基于QT的音乐播放器 前言 一.主体效果 二.主要技术点: 1. mp3的ID3V2格式文件解析:作者.歌手.时长.专辑图片等 1.1 需要工具: 1.2 ID3V2文件格式 1.3 mp3ID3V2 ...
- QT小项目-QT在线音乐播放器
QT在线音乐播放器 先上几张音乐播放器的图片 具体实现及部分代码 后面还有好多就不一一例举了 先上几张音乐播放器的图片 (主页图片来源网络) 具体实现及部分代码 搜索歌曲和获取歌曲具体信息的URL,这 ...
- 基于Arduino Uno开发板制作音乐播放器
基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...
- C++ QT视频音乐播放器
程序示例精选 C++/QT视频音乐播放器 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 这篇博客针对<<C++/QT视频音乐播放器>>编写代 ...
最新文章
- MediaCodeC解码视频指定帧,迅捷、精确
- Spring 基于Java配置
- 在浏览器输入一个网址,按回车之后发生了什么?
- windows下,怎么轻易拷贝一个文件的完整路径?
- 今日上午,清华大学发布中国首个高校自研深度学习训练框架—计图Jittor
- Alpha冲刺随笔集
- android实现箭头流程列表_反思|Android 列表分页组件Paging的设计与实现:系统概述...
- 二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6
- 2639-Bone Collector II (01背包之第k优解)
- Abbirb120型工业机器人_ABB IRB 120工业机器人.pdf
- iOS12.3正式版发布 iOS13亮相进入倒计时
- linux恢复deleted状态的文件,Linux恢复被删除的文件 How To Recover Deleted Files From Your Linux System ....
- 使用Git上传文件至Github中
- 统计php 代码行数,PHP实现统计代码行数小工具
- python蒙特卡洛模拟_用Python实现蒙特卡洛模拟
- Subclipse使用说明
- 【数据分析实战】北京租房数据统计分析
- 大学生计算机水平怎么提高,大学生如何提高计算机能力
- Python爬虫进阶之字体反扒保姆级教程!
- Revit模型转obj模型插件
热门文章
- 学生用的笔记本电脑什么样的好_大学生用的学生党笔记本什么牌子好,听听学姐的...
- python 异步io_python之同步IO和异步IO
- Linux DHCP原理与配置
- android 实现定时任务,Android 实现定时任务的过程详解
- 苹果错误分析报告preferreuserinterface_数据分析的六个步骤,你做到了吗?
- 格兰因果模型可以分析哪些东西_如何系统地学习统计学,指导入门数据分析
- 鸿蒙系统手机用户体验,鸿蒙系统真的来了!用户体验流畅度远超安卓,任正非扳回一城!...
- 调用支付jsapi缺少参数appid_服务商模式下的小程序微信支付
- 简单的留言板 php,php 简单留言板教程一
- centos vim 安装插件本质研究