【发布时间】:2021-07-30 08:23:57
【问题描述】:
我有一个使用 QML MediaPlayer 播放音乐的应用程序。
途径:
Connections {
target: Qt.application
onStateChanged: {
// ...
}
}
我能够注意到应用何时进入后台,或者何时再次进入前台。
但是,当用户关闭应用程序时,我没有收到任何事件。问题是,播放音乐时,应用程序关闭,音乐播放继续。因此,我需要一种方法来捕捉关闭事件并停止音乐播放。
我使用的是 Ubuntu Touch,因此我没有可以捕获 closing 事件的 Window 实例。在QGuiApplication / Qt.application 中似乎也没有可行的信号;我试过捕捉lastWindowClosed,但它永远不会被触发。
长话短说: 如何在应用即将关闭时收到通知以便停止音乐播放?
我的 main.cpp 几乎是默认的,看起来像:
int main(int argc, char *argv[])
{
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication* app = new QGuiApplication(argc, (char**)argv);
QQuickView *view = new QQuickView();
view->setSource(QUrl("qrc:/Main.qml"));
view->setResizeMode(QQuickView::SizeRootObjectToView);
view->show();
return app->exec();
}
【问题讨论】:
-
你能听听你的主应用程序窗口的
Component.onDestruction吗? -
没用。虽然没有错误,但在此处添加停止音乐播放的代码无效,并且在应用关闭后继续播放。
-
尝试从 main.qml 中的主窗口捕获 onClosing 事件。
onClosing: { // do ur action here } -
@RamkumarR 如上所述,我没有
Window实例。
标签: qt mobile qml forceclose