当前位置: 首页 > article >正文

QT之QMediaPlayer的用法

QT之QMediaPlayer的用法

    • 成员函数
    • 例程

成员函数

1)setMedia(const QMediaContent &media, QIODevice *stream = nullptr)
设置要播放的媒体内容,其中参数media指定了媒体内容,stream参数指定了用于读取媒体的输入设备(如文件流)。

2)setPlaylist(QMediaPlaylist *playlist)
设置要播放的播放列表,参数playlist是一个指向QMediaPlaylist对象的指针。

3)setPlaybackMode(QMediaPlaylist::PlaybackMode mode)
设置播放模式,参数mode指定了播放模式,如循环播放、随机播放等。

4)play()
开始播放媒体。

5)stop()
停止播放媒体。

6)pause()
暂停播放媒体。

7)currentMedia() const
获取当前正在播放的媒体内容。

8)setVolume(int volume)
设置音量大小,参数volume指定了音量级别,范围为0(静音)到100(最大音量)。

9)setPosition(qint64 position)
设置播放进度,参数position指定了新的播放进度位置(以毫秒为单1)位)

10)setOutputDevice(QIODevice *device)
设置音频输出设备,参数device是一个指向QIODevice对象的指针。

11)outputDevice() const
获取当前音频输出设备。

12)setVideoOutput(QWidget *widget)
设置视频输出设备,参数widget是一个指向QWidget对象的指针。

13)videoOutput() const
获取当前视频输出设备。

14)isAudioAvailable() const
检查是否可用的音频输出。

15)isVideoAvailable() const
检查是否可用的视频输出。

16)duration() const
获取媒体的播放时长(以毫秒为单位)。

17)position() const
获取当前的播放进度位置(以毫秒为单位)。

18)setPosition(qint64 position)
设置播放进度位置(以毫秒为单位)。

19)currentMediaTime() const
获取当前播放的媒体时间(以毫秒为单位)。

20)seek(qint64 pos)
跳转到指定的播放时间位置(以毫秒为单位)。

21)setPlaybackRate(qreal rate)
设置播放速度,参数rate指定了播放速度,例如0.5表示慢速播放,2表示快速播放。

22)playbackRate() const
获取当前的播放速度。

23)isPlaying() const
检查是否正在播放媒体。

24)isPaused() const
检查是否处于暂停状态。

25)isStopped() const
检查是否停止了播放。

26)state() const
获取当前的播放状态。

27)setState(QMediaPlayer::State state)
设置播放状态,参数state指定了要设置的播放状态,如28)QMediaPlayer::PlayingState、
QMediaPlayer::PausedState或QMediaPlayer::StoppedState。

例程

#include <QMediaPlayer>  
#include <QMediaContent>  
#include <QApplication>  
#include <QMediaPlaylist>  
#include <QMediaPlaylistIten>  
#include <QVideoWidget>  
#include <QTimer>  
  
int main(int argc, char *argv[])  
{  
    QApplication app(argc, argv);  
      
    // 创建QMediaPlayer对象  
    QMediaPlayer *player = new QMediaPlayer;  
      
    // 创建QMediaContent对象,指定要播放的视频文件路径  
    QString filePath = "path/to/video";  
    QMediaContent media(QUrl::fromLocalFile(filePath));  
      
    // 设置要播放的媒体内容  
    player->setMedia(media);  
      
    // 创建QVideoWidget对象,用于显示视频画面  
    QVideoWidget *videoWidget = new QVideoWidget;  
      
    // 将视频画面显示在QVideoWidget对象中  
    player->setVideoOutput(videoWidget);  
      
    // 开始播放视频  
    player->play();  
      
    // 创建定时器对象,用于在播放结束后自动停止播放器  
    QTimer *timer = new QTimer;  
    QObject::connect(player, &QMediaPlayer::finished, timer, &QTimer::start, Qt::QueuedConnection);  
    timer->start(1000);  // 1秒后停止播放器  
      
    return app.exec();  
}

我们首先创建了一个QMediaPlayer对象,然后通过QMediaContent对象指定要播放的视频文件路径,再通过调用setMedia()方法将媒体内容设置到QMediaPlayer对象中。接着,我们创建了一个QVideoWidget对象用于显示视频画面,并通过调用setVideoOutput()方法将视频输出到该对象中。最后,我们调用play()方法开始播放视频,并通过定时器对象在播放结束后自动停止播放器。

注意:.pro文件中必须添加 multimedia multimediawidgets


http://www.kler.cn/news/150324.html

相关文章:

  • Reactor模式
  • 从0开始学习JavaScript--JavaScript 模板字符串的全面应用
  • 【论文学习】机器学习模型安全与隐私研究综述
  • 05_MySQL主从复制架构
  • NX二次开发UF_CURVE_create_joined_feature 函数介绍
  • 重要端口及服务速查
  • docker搭建rabbit集群
  • base64转PDF
  • Debian arm系统安装wxPython
  • ubuntu下训练自己的yolov5数据集
  • C++ 通过CryptoPP计算Hash值
  • 从0开始学习JavaScript--JavaScript 工厂模式
  • Nginx 实现动静资源分离和负载均衡
  • 数据库系统原理——备考计划2:数据库系统的概述
  • EasyRecovery数据恢复软件好不好用?有哪些功能
  • docker 中的–mount 和-v 参数有啥区别
  • gRPC之grpc负载均衡(resolver)
  • 升级openssh以及回滚,telnet远程链接
  • 园区智能配电系统(电力智能监控系统)
  • tomcat调优配置
  • F. Magic Will Save the World
  • CSS3样式详解之圆角、阴影及变形
  • 创建conan包-不同/相同repo中的配方和来源
  • 引领Serverless构建之路,亚马逊云科技re:Invent 2023首日主题演讲重磅发布
  • AIGC: 关于ChatGPT中输出表格/表情/图片/图表这些非文本的方式
  • 移动开发新风向?HarmonyOS、车载、音视频、flutter
  • 精调llama模型
  • Kubernetes之kubeadm集群监控篇—node-exporter部署
  • 优雅退出:避免Spring Boot应用程序在推出JVM时的DestroyJavaVM异常
  • 外汇天眼:外汇市场中的“双向交易”是什么意思?