该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

videowidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);

videowidget->setScaleMode(Phonon::VideoWidget::ScaleAndCrop);

当然也有提供函式让影片进入或退出全萤幕模式。以下为一个简短的程式码范例:

MediaObject *media = new MediaObject(parent);

VideoWidget *vwidget = new VideoWidget(parent);

Phonon::createPath(media, vwidget);

SeekSlider Class

SeekSlider类别提供一个可滑动的slider来设定多媒体串流播放的位置。所以它会连接到MediaObject,并控制串流目前的位置。

以下是一个使用的范例:

Phonon::MediaObject *moo = new Phonon::MediaObject;;

Phonon::AudioOutput *device = new Phonon::AudioOutput;

Phonon::createPath(moo, device);

moo->setCurrentSource(

QString("/home/gvatteka/Music/Lumme-Badloop.ogg"));

Phonon::SeekSlider *slider = new Phonon::SeekSlider;

slider->setMediaObject(moo);

slider->show();

moo->play();

VolumeSlider Class

VolumeSlider widget提供可以控制声音装置音量的widget。

用法其实与上面的SeekSlider类似,使用范例如下:

honon::AudioOutput *audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory);

Phonon::createPath(mediaObject, audioOutput);

Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider;

volumeSlider->setAudioOutput(audioOutput);

范例

再看过上面的一些类别介绍之后,其实就可以显一个简单的媒体播放器了,请看范例程式码:

#include

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[]) {

QApplication app(argc, argv);

QWidget *widget = new QWidget;

widget->setWindowTitle("Media Player");

widget->resize(400,400);

Phonon::MediaObject *media = new Phonon::MediaObject;

media->setCurrentSource(Phonon::MediaSource("../Puppet.mpg"));

Phonon::VideoWidget *vwidget = new Phonon::VideoWidget(widget);

Phonon::createPath(media, vwidget);

vwidget->setAspectRatio(Phonon::VideoWidget::AspectRatioAuto);

Phonon::AudioOutput *aOutput = new Phonon::AudioOutput(Phonon::VideoCategory);

Phonon::createPath(media, aOutput);

QLabel *label = new QLabel("Volume: ");

Phonon::VolumeSlider *volumeSlider = new Phonon::VolumeSlider;

volumeSlider->setAudioOutput(aOutput);

volumeSlider->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);

Phonon::SeekSlider *seekSlider = new Phonon::SeekSlider;

seekSlider->setMediaObject(media);

QHBoxLayout *hLayout = new QHBoxLayout;

hLayout->addWidget(label);

hLayout->addWidget(volumeSlider);

hLayout->addStretch();

QVBoxLayout *vLayout = new QVBoxLayout;

vLayout->addWidget(vwidget);

vLayout->addWidget(seekSlider);

vLayout->addLayout(hLayout);

widget->setLayout(vLayout);

widget->show();

media->play();

return app.exec();

}

上面的程式码就完成了一个简易的多媒体播放器,当然还有很多部分还需要改进,不过在此仅就Phonon的使用上做介绍。执行之后的画面如下所示:

由於VideoWidget已经嵌入到QWidget了,所以你调整视窗大小的话,影片播放的视窗也会跟著调整。

引用地址:http://www.xici.net/u16539771/d104902644.htm

qt linux phonon,如何使用 Qt Phonon(在网上找的,希望有人能用的着)相关推荐

  1. qt linux 文字转语音,QT文本转语音模块(TTS)QTextToSpeech

    QTextToSpeech是QT5.8以上的文本转语音模块. 使用方法: 在.pro工程文件中添加"QT += texttospeech". 添加头文件 #include 源文件: ...

  2. qt linux mac,MacOS下Qt Installer Framework使用教程【个人经验】

    MacOS下Qt Installer Framework怎么使用?使用Qt Installer Framework之前,必须先下载它, 下载地址: 下载完成之后自己进行安装,安装之后,我们就可以开始进 ...

  3. jom qt linux,【求助】Qt Creater编译问题——jom.exe退出

    [求助]Qt Creater编译问题--jom.exe退出 初学QT,碰到如下错误,不知如何解决...请各位大神们多多提点,多谢 为项目AuthorMars11-7-28执行构建步骤 ... 正在启动 ...

  4. qt linux 程序设置字体,QT程序中显示中文字体解决办法

    最近一直在做移植qtopia4.4.3和QT4.7的工作.qtopia已经可以在龙芯开发板上正常运行.搭建QT4.7的环境,使用QT4.7编写小程序,发现不能显示中文.研究了一番,找到了如下的解决方法 ...

  5. qt linux地图控件,Qt编写地图综合应用6-百度在线地图

    一.前言 百度在线地图的应用老早就做过,后面经过不断的完善才到今天的这个程序,除了基本的可以载入地图并设置一些相关的属性以外,还增加了各种js函数直接异步加载数据比如动态添加点.矩形.圆形.行政区划等 ...

  6. 移植phonon到arm(续 ARM Linux平台环境搭建-QT SDK编译)

    移植交叉编译过的phonon库 qt源码编译后,将对应的QT目标文件夹下lib文件夹中的 以libphonon开头的几个文件打包压缩,复制到arm板对应的QT文件夹中lib目录下 测试qt程序,让qt ...

  7. 记录下 QT Linux 静态编译遇到的坑

    记录下 QT Linux 静态编译遇到的坑 记录下 QT Linux 静态编译遇到的坑 - 貘吃馍的日志 - 网易博客 http://qbaok.blog.163.com/blog/static/10 ...

  8. LINUX系统环境下的QT编译安装

    一.软件下载 1.1 查询计算机架构及所装Linux发行版本,如下图所示: 1.2 " http://qt-project.org/downloads/ "下载Qt安装套件,如下图 ...

  9. linux ubuntu QT 下载和安装(Qt Creator)

    下载地址:https://download.qt.io/ 为什么选5.14版本,因为其他几个没发现 用迅雷下,下好后拷贝到ubuntu里,切换root用户,给安装包赋777权限 chmod 777 q ...

最新文章

  1. 【数据中台】关于数据中台系统,需要了解哪些技术?
  2. 纽约时报:人们正成为移动通讯的奴隶
  3. centos6.4下配置nginx服务器更改根目录
  4. java stringbuffer原理_String,StringBuilder,StringBuffer 实现原理解析
  5. sql server中的存储过程调试
  6. Java领域的对象如何传输-了解序列化的意义
  7. LeetCode算法题-Jewels and Stones(Java实现)
  8. 文字处理技术:标点压缩
  9. icmp数据包BE、LE解释
  10. 第三届泰迪杯数据挖掘技能赛一等奖总结经验分享
  11. java ajax 上传图片_用ajax上传图片及java后台接收问题
  12. 分享一下自己收集到的真实用户的UA
  13. 每日一书丨这本书献给所有铸就开源世界的人们
  14. 在matlab中如何把两个txt文件合并到一起
  15. 利用手机作为渗透工具的一些思路
  16. 高德地图天气接口返回天气图标url
  17. Linus Benedict Torvalds
  18. 从两个角度谈谈:什么是产品视角
  19. 【HTTP劫持和DNS劫持】
  20. 港媒:梁洛施偷吃排卵药擅生双胞胎 惹怒李泽楷

热门文章

  1. 复杂可编程逻辑器件CPLD
  2. Java自动售货机实验报告,java案例自动售货机
  3. 开源不是免费的午餐,新变化背后的趋势是什么?
  4. 2021.12.20-12.26 AI行业周刊(第77期):平平淡淡的人生
  5. 【项目】新冠肺炎疫情期间网民情绪识别——Python文本分类
  6. [js运动动画]运动之匀速运动框架
  7. 快速上手Mac的使用手册,这些方法你肯定用的上
  8. chatgpt把脉知识星球
  9. 国家代码电话区号中英文简写
  10. oracle 11g复制数据库