アプリケーションからノキア独自のビデオプレーヤーを起動する際に問題がありますが、解決できないようです。MeeGo/Nokia N9でビデオスイートをQtコードから起動する方法は?
私の最初の試みは、QMLから
Qt.openUrlExternally(url)
を呼び出す含まれており、それはそれは、ブラウザを毎回開いたことを除いて、うまくトリックを行うように見えたし、ビデオ・スイート(ネイティブプレイヤー)の代わりにそれを使用しました。それ以外の場合は何もしなかった、それはビデオスイートを必要とすることを除いて、働いていた
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-呼び出し時にクローズする:
次は私がcuteTubeを試みたアプローチ - 私はこのような新しいプロセスを開始するところ。
私の第三の試みは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を使用してアプリケーションの現在の状態に関係なくビデオ再生を開始する方法がありますか?