我遇到了從我的應用程序啓動諾基亞自己的視頻播放器的問題,我似乎無法解決。如何從Qt代碼啓動MeeGo/Nokia N9的視頻套件?
我第一次嘗試包括調用
Qt.openUrlExternally(url)
從QML而且似乎這樣的伎倆就好了,但它每次打開瀏覽器並使用它,而不是視頻套房(原生播放器)的。
下一個我試圖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);
這工作,但它需要的視頻套件,在調用播放器 - >啓動被關閉,否則什麼也沒做。
我第三次參與首發通過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沒有區別。
那麼,有沒有直接或通過的DBus請使用VideoSuiteInterface以便它會開始視頻播放,無論應用程序的當前狀態的一種方式?