免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 860 | 回复: 0
打印 上一主题 下一主题

Qt媒体开发-视频音乐简单实例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 02:09 |只看该作者 |倒序浏览

嵌入式图形界面开发—Phonon

 

多媒体文件的播放主要过程包括:文件读取、分流、解码、输出

 

Qt4.4版本开始提供的一套多媒体框架,提供多媒体回放的功能。目前在Qt 4.6中实现多媒体播放图形界面主要依赖于phonon框架,其实qt中还有一个Multimedia模块,帮助文档中对它的描述是:实现底层的多媒体播放功能,在一般情况下上层的接口phonon模块更适合实现这些功能。phonon最初是一个 源于KDE的项目,为使用音频和视频的应用程序开发提供的一个框架。应用程序不用去管多媒体播放是通过什么实现的(如gstreamerxine),只需调用相应的接口就行,但这中间需要一个中转,被称为backendQt也是通过phonon来实现夸平台的多媒体播放。

 

Phonon架构

MediaObject: phonon的基础,用于管理多媒体来源,来源可以是影音文件,并能提供基本的播放控制,如开始、暂停、结束等。提供多媒体资料给MediaObject的是MediaSource

Sink输出多媒体,Sink接受MediaOjbect来的资料,MediaObject控制播放,Sink处理来的多媒体

Paths:用来连接Phonon的物件,即MediaObjectSink将的连接

 

简单的视频播放

Phonon提供了很多类供使用,其中最简单的,莫过于VideoPlayer这个类了。

VideoPlayer widget如它的名字一样,就是用来播放video,而且使用起来相当简易,而且功能也不会缺少,包括播放、暂停与停止。

在实例化VideoPlayer对象时,可以在constructor就载入多媒体种类与要放在哪个widget(即为 parentWidget),而media source可以利用函数load()来载入或是在play()时载入,而载入方式可直接从文件或是从网络地址载入。

VideoPlayer大部分函数都是非同步的,所以载入media source并不会马上播放多媒体文件,只有在调用函数play( )之后才会开始播放。

 

示例代码:(播放视频)

QWidget *widget = new QWidget;

widget->setWindowTitle("Video Player");

widget->resize(600,500);

Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory,widget);

player->play(Phonon::MediaSource("I:/clock.avi"));

// player->load(Phonon::MediaSource("I:/clock.avi"));

// player->play();   

widget->show();

 

播放音乐:

Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::MusicCategory, widget);

player->load(Phonon::MediaSource("../2.mp3"));

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP