1
私のメインのQMLファイルでは、MediaPlayer
を定義しました。 (QAudioProbe
を経由して)メディアバッファへのアクセスを低レベルにするには、mediaObject
への参照を取得する必要があります。私のC++バックエンドは、qmlRegisterSingletonType
によって登録されたクラスを通してUIとインターフェースします。qmlRegisterSingletonTypeのコールバックからQML読み込み項目にアクセスするにはどうすればよいですか?
main.cppに
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
qmlRegisterSingletonType<BackendInterface>("_", 0, 1, "Backend", backendInterfaceProvider);
QQmlApplicationEngine engine;
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
return app.exec();
}
そして、ここでコールバックです:
static QObject *backendInterfaceProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
{
Q_UNUSED(engine)
Q_UNUSED(scriptEngine)
return new BackendInterface(/* need a QMediaPlayer* here*/);
}
質問
私は私のバックエンドインターフェイスを作成していたときにQMLの階層構造にアクセスする方法(すなわちBackendInterface
)?