Я создал приложение Qt GUI по умолчанию, я добавил void keyPressEvent(QKeyEvent* ev);
в классе mainwindow, когда пользователь нажимает пробел, приложение будет воспроизводить звук (ok), но когда пользователь нажмите много раз за короткое время, приложение не ответит. Я не знаю почему? Помоги мне, пожалуйста!Приложение QMediaPlayer не отвечает при воспроизведении много раз за короткое время
.pro файл:
QT += core gui multimedia
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = untitled2
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
RESOURCES += \
res.qrc
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMediaPlayer>
namespace Ui { class MainWindow; }
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void keyPressEvent(QKeyEvent* ev);
private:
Ui::MainWindow *ui;
QMediaPlayer mp;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QKeyEvent>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{ ui->setupUi(this); }
MainWindow::~MainWindow() { delete ui; }
void MainWindow::keyPressEvent(QKeyEvent* ev) {
switch(ev->key()) {
case Qt::Key_Space: {
mp.setMedia(QUrl("qrc:/sounds/Fireworks.wav"));
mp.play();
break;
}
}
}
main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
(Примечание: я загрузил mainwindow.ui. res.qrc здесь)
ответ mp.setPosition (0); – aviit