アプリケーションから Nokia 独自のビデオ プレーヤーを起動する際に問題が発生し、解決できないようです。
私の最初の試みには電話が含まれていました
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);
player->start を呼び出したときに video-suite を閉じる必要があることを除いて、これは機能しました。それ以外の場合は何もしませんでした。
3 回目の試みでは、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 パラメータも役に立ちませんでした。video-suite がまだ実行されていない場合、呼び出しによって正常に開きますが、残念ながら、ビデオの再生は開始されません。
最終的にはVideoSuiteInterfaceも使ってみたのですが、プログラムをコンパイルするだけでも難しそうでした。最終的に関連するすべてのライブラリをコンパイルしてリンクすることができたとき、結果は上記のオプション 3 と変わりませんでした。
では、VideoSuiteInterface を直接または DBus 経由で使用して、アプリケーションの現在の状態に関係なくビデオの再生を開始する方法はありますか?