如何从Qt代码启动MeeGo/Nokia N9中的视频套件?

如何从Qt代码启动MeeGo/Nokia N9中的视频套件?,qt,video,meego,Qt,Video,Meego,从我的应用程序中启动诺基亚自己的视频播放器时,我遇到了一些问题,但我似乎无法解决这些问题 我的第一次尝试包括打电话 Qt.openUrlExternally(url) 从QML和这似乎做得很好,除了它每次打开浏览器,并使用它而不是视频套件(本机播放器) 接下来,我尝试了cuteTube方法,我开始了如下新流程: QStringList args; args << url; QProcess *player = new QProcess(); connect(player, SIGN

从我的应用程序中启动诺基亚自己的视频播放器时,我遇到了一些问题,但我似乎无法解决这些问题

我的第一次尝试包括打电话

Qt.openUrlExternally(url)
从QML和这似乎做得很好,除了它每次打开浏览器,并使用它而不是视频套件(本机播放器)

接下来,我尝试了cuteTube方法,我开始了如下新流程:

QStringList args;
args << url;
QProcess *player = new QProcess();
connect(player, SIGNAL(finished(int, QProcess::ExitStatus)), player, SLOT(deleteLater()));
player->start("/usr/bin/video-suite", args);
QStringList参数;
args start(“/usr/bin/video suite”,args);
这是可行的,只是它要求在调用player->start时关闭视频套件,否则它什么也不做

我的第三次尝试是通过QDBus启动视频套件,但效果并不好:

QList<QVariant> args;
QStringList urls;
urls << url;
args.append(urls);

QDBusMessage message = QDBusMessage::createMethodCall(
    "com.nokia.VideoSuite",
    "/",
    "com.nokia.maemo.meegotouch.VideoSuiteInterface",
    "play");

message.setArguments(args);
message.setAutoStartService(true);

QDBusConnection bus = QDBusConnection::sessionBus();

if (bus.isConnected()) {
    bus.send(message);
} else {
    qDebug() << "Error, QDBus is not connected";
}
QList参数;
QStringList网址;

URL解决方案实际上比我最初想象的要简单;
VideoSuiteInterface
-方法毕竟奏效了。所需要的只是正确地使用它。如果有人想亲自尝试,以下是完整的资料来源

player.h:

#ifndef PLAYER_H
#define PLAYER_H
#include <QObject>
#include <maemo-meegotouch-interfaces/videosuiteinterface.h>

class Player : public QObject {
  Q_OBJECT
private:
  VideoSuiteInterface* videosuite;
public:
  Player(QObject *parent = 0);
  Q_INVOKABLE void play(QString url);
};
#endif // PLAYER_H
#include "player.h"
#include <QObject>
#include <QStringList>
#include <QtDeclarative>

Player::Player(QObject *parent) : QObject(parent) {}

void Player::play(QString url) {
  QList<QVariant> args;
  QStringList urls;
  urls << url;
  args.append(urls);

  videosuite = new VideoSuiteInterface();
  videosuite->play(urls);
}
CONFIG += videosuiteinterface-maemo-meegotouch