gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 21:41:43 25 4
gpt4 key购买 nike

我在从我的应用程序启动诺基亚自己的视频播放器时遇到问题,我似乎无法解决。

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

Qt.openUrlExternally(url)

来自 QML,这似乎很好地解决了这个问题,除了它每次都打开浏览器并使用它而不是视频套件( native 播放器)。

接下来,我尝试了 cuteTube -approach,我开始了这样的新流程:

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);

这行得通,除了它需要在调用 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";
}

这个问题是它需要启动和运行视频套件 - autoStartService 参数也没有帮助。如果视频套件尚未运行,则调用可以正常打开它,但是,没有视频开始播放。

最后我也尝试使用 VideoSuiteInterface ,但即使用它编译程序似乎也很困难。当我最终设法编译并链接所有相关库时,结果与上面的选项 3 没有什么不同。

那么,有没有一种方法可以直接使用 VideoSuiteInterface 或通过 DBus 来启动视频播放,而不管应用程序的当前状态如何?

最佳答案

解决方案实际上比我最初想象的要简单; VideoSuiteInterface - 方法毕竟奏效了。所要做的就是正确使用它。如果任何人想自己尝试,这里有完整的资源。

播放器.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

播放器.cpp:

#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);
}

此外,您可能想要连接一些信号以使 UI 响应更快,但基本上这应该可以解决问题。

最后,您需要记住将以下内容添加到您的 .pro 文件中,您就可以开始了:

CONFIG += videosuiteinterface-maemo-meegotouch

关于qt - 如何从 Qt 代码启动 MeeGo/Nokia N9 中的视频套件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9504413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com