获取媒体对象播放进度的方法:

  • 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中定义的两个重要的枚举类型StateMediaStatus :

  • State包含着当前的播放状态,有 { StoppedState, PlayingState, PausedState }三种状态,可以通过state()函数获取。
  • MediaStatus包含当前媒体文件的有效性

有 { UnknownMediaStatus, NoMedia, LoadingMedia, LoadedMedia, …, InvalidMedia }等状态,

可以通过mediaStatus()方法获取。

QMediaPlaylist

QMediaPlaylist是一个列表,

它可以保存媒体文件,包括媒体路径等信息,

它具有着列表的性质,比如添加删除插入等,但它能做的,比单纯的储存要多得多。

设置播放顺序,对播放的控制,保存到本地,从本地读取,都可以很方便地实现。

用QMediaPlaylist  添加媒体文件可以使用  addMedia  方法。方法接收一个QMediaContent的对象引用

  1. playlist->addMedia(QMediaContent(QUrl("http://example.com/movie1.mp4")));
  2. playlist->addMedia(QMediaContent(QUrl("http://example.com/movie2.mp4")));
  3. playlist->addMedia(QMediaContent(QUrl("http://example.com/movie3.mp4")));

此时新添加的媒体被插入到列表的最后。

同样的也有指定位置的插入方法。除了QMediaContent对象引用,还需要指定插入位置。

  1. playlist->insertMedia(2,QMediaContent(QUrl("http://example.com/movie4.mp4")));

方法clear()可以清除所有的媒体对象。 
而希望精确地删除媒体,就要用到  removeMedia  方法。

方法有两个版本,

第一个版本接收一个int变量作为被删除媒体的位置,

另一个版本接收两个int变量,删除这两个索引之间的所有媒体对象。

  1. playlist->removeMedia(3);//删除位置索引为3的媒体对象
  2. playlist->removeMedia(0,2);//删除位置索引为0,1,2的媒体对象;
  3. 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

  1. player.setPlaylist(playlist);
  2. player.play();//播放playlist当前媒体

QT制作音乐播放器的相关知识点相关推荐

  1. 树莓派3B qt+mplayer制作音乐播放器(10)

    内容 树莓派3B qt+mplayer制作音乐播放器:播放.暂停.上一曲.下一曲,音量调节. 平台:树莓派+qt+mplayer 1.配置 qt安装见此: https://blog.csdn.net/ ...

  2. 基于Qt的音乐播放器制作

    基于Qt的音乐播放器制作 使用浏览器自带工具抓包歌曲资源 开发人员工具抓包 点击浏览器右上角的 "-" 快捷键(Alt + F): 点击其中的"更多工具" ➡ ...

  3. 基于Qt的音乐播放器(二)切换歌曲,调节音量,调节语速,暂停

    2020博客之星年度总评选进行中:请为74号的狗子投上宝贵的一票! 我的投票地址:点击为我投票 文章目录 1.切换歌曲 2.调节音量 3.调节语速 4.播放/暂停 5.我们来看下效果 6.关于上一篇提 ...

  4. winform制作音乐播放器

    winform制作音乐播放器 本文利用C# 调用Windows自带的Windows Media Player 打造一款属于自己的音乐播放器,以供学习分享使用,如有不足之处,还请指正. 概述 Windo ...

  5. Qt+MPlayer音乐播放器开发笔记(二):交叉编译MPlayer以及部署到开发板播放演示

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/119991329 长期持续带来更多项目与技术分享,咨询请 ...

  6. 【QT的音乐播放器(简单版)】

    基于QT的音乐播放器 前言 一.主体效果 二.主要技术点: 1. mp3的ID3V2格式文件解析:作者.歌手.时长.专辑图片等 1.1 需要工具: 1.2 ID3V2文件格式 1.3 mp3ID3V2 ...

  7. QT小项目-QT在线音乐播放器

    QT在线音乐播放器 先上几张音乐播放器的图片 具体实现及部分代码 后面还有好多就不一一例举了 先上几张音乐播放器的图片 (主页图片来源网络) 具体实现及部分代码 搜索歌曲和获取歌曲具体信息的URL,这 ...

  8. 基于Arduino Uno开发板制作音乐播放器

    基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...

  9. C++ QT视频音乐播放器

     程序示例精选 C++/QT视频音乐播放器 如需安装运行环境或远程调试,见文章底部微信名片,由专业技术人员远程协助! 前言 这篇博客针对<<C++/QT视频音乐播放器>>编写代 ...

最新文章

  1. MediaCodeC解码视频指定帧,迅捷、精确
  2. Spring 基于Java配置
  3. 在浏览器输入一个网址,按回车之后发生了什么?
  4. windows下,怎么轻易拷贝一个文件的完整路径?
  5. 今日上午,清华大学发布中国首个高校自研深度学习训练框架—计图Jittor
  6. Alpha冲刺随笔集
  7. android实现箭头流程列表_反思|Android 列表分页组件Paging的设计与实现:系统概述...
  8. 二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6
  9. 2639-Bone Collector II (01背包之第k优解)
  10. Abbirb120型工业机器人_ABB IRB 120工业机器人.pdf
  11. iOS12.3正式版发布 iOS13亮相进入倒计时
  12. linux恢复deleted状态的文件,Linux恢复被删除的文件 How To Recover Deleted Files From Your Linux System ....
  13. 使用Git上传文件至Github中
  14. 统计php 代码行数,PHP实现统计代码行数小工具
  15. python蒙特卡洛模拟_用Python实现蒙特卡洛模拟
  16. Subclipse使用说明
  17. 【数据分析实战】北京租房数据统计分析
  18. 大学生计算机水平怎么提高,大学生如何提高计算机能力
  19. Python爬虫进阶之字体反扒保姆级教程!
  20. Revit模型转obj模型插件

热门文章

  1. 学生用的笔记本电脑什么样的好_大学生用的学生党笔记本什么牌子好,听听学姐的...
  2. python 异步io_python之同步IO和异步IO
  3. Linux DHCP原理与配置
  4. android 实现定时任务,Android 实现定时任务的过程详解
  5. 苹果错误分析报告preferreuserinterface_数据分析的六个步骤,你做到了吗?
  6. 格兰因果模型可以分析哪些东西_如何系统地学习统计学,指导入门数据分析
  7. 鸿蒙系统手机用户体验,鸿蒙系统真的来了!用户体验流畅度远超安卓,任正非扳回一城!...
  8. 调用支付jsapi缺少参数appid_服务商模式下的小程序微信支付
  9. 简单的留言板 php,php 简单留言板教程一
  10. centos vim 安装插件本质研究