×
Namespaces

Variants
Actions

在Meego上使用QML 播放视频

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
文章
zhouhl 在 01 Jul 2011 创建
最后由 hamishwillee 在 13 Jun 2012 编辑

综述

由于目前的最新的 Qt Creator 暂时还不太完善, 因此在 Meego 上开发和视频相关应用的时候,如果我们使用到了Qt Mobility Multimedia API 中的 QML Video elements, 那么我们就需要注意以下事项:

首先,在开发视频相关项目的时候,由于目前的 Qt Creator 没有生成正确的 .aegis 文件,因此我们需要自己做一个.aegis 文件放到qtc_packaging\debian_harmattan目录里面。

aegis文件的大致格式如下:

<aegis>
<request>
<credential name="GRP::video" />
<credential name="GRP::pulse-access" />
<for path="/full/path/of/your/application" />
</request>
</aegis>

例如在本文所附例子程序中,videoplayer.aegis文件的具体内容如下:

<aegis>
<request>
<credential name="GRP::video" />
<credential name="GRP::pulse-access" />
<for path="/opt/VideoPlayer/bin/VideoPlayer" />
</request>
</aegis>

添加过aegis文件之后,我们就会发现程序可以播放视频了!


但是现在还存在一个问题,当我们打开视频之后,如果此时我们从侧面推一下程序,把程序切换到后台,我们会发现程序崩溃并自动退出了。 要解决这个问题,我们需要使用QGLWidget 作为一个 viewport。具体来讲,比如我们在main.cpp中可以这样写:

#include <QtGui/QApplication>
#include <QtOpenGL/QGLWidget>
#include <QtDeclarative>
 
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDeclarativeView view;
view.setViewport(new QGLWidget());
view.setSource(QUrl("qrc:/qml/main.qml"));
view.showFullScreen();
return app.exec();
}

对应的,我们需要在pro文件中加入如下代码:

QT += opengl

在我们的例子程序中是在QmlApplicationViewer的构造函数中,加入

setViewport(new QGLWidget());


好了,到此为止,视频播放的程序在Meego上就一切正常了,Have Fun!

例子程序请参考附件。

下载源码和样例程序

File:MeegoVideoPlayer.zip

相关链接

This page was last modified on 13 June 2012, at 10:52.
147 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×