文章目录
1、QMediaPlayer简介
QMediaPlayer是Qt提供的一个跨平台媒体播放器类。它没有自带解码库,而是对平台相关的播放器框架做了封装,提供了平台无关的API。
在Windows下时,底层基于微软的DirectShow框架实现,需要提前安装解码库。可以下载K-Lite_Codec_Pack或者LAVFilters解码库安装。LAVFilters,下载地址:https://github.com/Nevcairiel/LAVFilters/releases
在Linux下时,底层基于GStreamer框架实现。
2、相关类介绍
2.1 QMediaPlayer
2.1.1 简单用法:
播放音频:
player = new QMediaPlayer;
connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged(qint64)));
player->setMedia(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
player->setVolume(50);
player->play();
播放视频:
QVideoWidget可与QMediaPlayer一起用于视频渲染,与QMediaPlaylist一起用于访问播放列表功能。
playlist = new QMediaPlaylist;
playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
playlist->setCurrentIndex(1);
player = new QMediaPlayer;
player->setPlaylist(playlist);
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();
2.1.2 关键枚举类
这些关键的枚举类,是实现好用的播放器的关键。需要重点关注哦。
播放器状态 QMediaPlayer::State
播放器有暂停、正在播放和停止三种状态,每种状态由下面 QMediaPlayer::MediaStatus来最终表现

本文详细介绍了Qt中的QMediaPlayer类及其关键用法,包括音频和视频播放、相关类如QVideoWidget和QMediaPlaylist,同时涵盖了遇到的常见问题及解决策略。重点讨论了调整播放速度和弱网环境下进度条操作的优化技巧。

2656

被折叠的 条评论
为什么被折叠?



