У меня проблемы с запуском собственного видеопроигрывателя Nokia из моего приложения, которое я просто не могу решить.
Моя первая попытка включала вызов
Qt.openUrlExternally(url)
изQML, и это, похоже, отлично сработало, за исключением того, что он каждый раз открывал браузер и использовал его вместо video-suite (native player).
Далее я попробовал 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 тоже не помог.Если video-suite еще не запущен, вызов открывает его просто отлично, но, увы, видео не начинает воспроизводиться.
В конце концов я попытался использовать также VideoSuiteInterface , но даже с программойскомпилировать это казалось трудным.Когда мне в итоге удалось скомпилировать и связать все соответствующие библиотеки, результаты не отличались от описанного выше варианта 3.
Итак, есть ли способ использовать либо VideoSuiteInterface напрямую, либо через DBus, чтобы он начал воспроизведение видеонезависимо от текущего состояния приложения?