- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个默认的 Qt GUI 应用程序,我在主窗口类中添加了 void keyPressEvent(QKeyEvent* ev);
,当用户按下空格时,应用程序将播放声音 (ok) 但是当用户在短时间内多次按下,应用程序将无响应。我不知道为什么?请帮助我!
.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
主窗口.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
主窗口.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;
}
}
}
主要.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.setMedia(QUrl("qrc:/sounds/Fireworks.wav"));
不要不必要地设置媒体,因为媒体播放器不会在内部检查“哦,媒体是一样的,我要变聪明了”
相反,您希望在再次按下媒体键时从头开始播放媒体。最简单的解决方案是使用一个 bool 值来指示媒体是否已设置。
case Qt::Key_Space:
{
if(!is_media_set)
{
mp.setMedia(QUrl("qrc:/sounds/Fireworks.wav"));
is_media_set = true;
}
mp.setPosition(0);
mp.play();
break;
}
如果多个键触发不同的声音,请将 bool 值替换为 current_media_key
以指示最后加载的媒体。
关于c++ - QMediaPlayer 应用程序在短时间内多次播放时没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495534/
我想获取小部件应用程序的屏幕截图,然后使用 setMedia() 将其原始数据缓冲区设置为 QMeidaPlayer。到目前为止我所做的是接收图像,保存它,然后从中读取。但是,我想问你如何直接读取原始
问题:以下调用不会让 QMediaPlayer 播放任何声音。 player->setMedia(QUrl("qrc:/snd/coin-refund.mp3")); player->play();
我正在尝试实现一个检查视频文件的服务器终端应用程序。我需要获取音频/视频编解码器、分辨率、比特率、长度等信息。 我在 QMediaResource 中找到了大部分需要的信息.在阅读了多个示例之后,我得
我想知道为什么 QMediaPlayer 不是从另一个线程播放,而是在调用者线程停止时开始播放。 例如: 线程 A 调用(调用由信号槽完成)到线程 B 开始播放 MP3,但线程 A 继续他的工作,但是
我创建了一个默认的 Qt GUI 应用程序,我在主窗口类中添加了 void keyPressEvent(QKeyEvent* ev);,当用户按下空格时,应用程序将播放声音 (ok) 但是当用户在短时
我正在研究创建简单视频播放器的选项。我想做的是在播放视频时应用一些音频处理(例如,为简单起见,使用低通滤波器)。我看过 Qt 多媒体 API,所以这是我的主要问题: 如何编辑 QMediaPlayer
我刚开始使用 C++,我正在尝试使用 Qt 播放 mp3 文件。我写了这段代码,但由于某种原因它不起作用。我在互联网上进行了搜索,但找不到任何有用的东西。 这是我的代码: #include #inc
我是 Qt 的新手。我在使用 QMediaPlayer 时遇到问题:我的程序有 2 种形式(主形式和通知形式)。所以它有条件,如果它是真的,程序必须显示第二种形式并在加载形式上播放音乐。 主要.cpp
您好,我仍在为今年学校的主要项目学习 C++ 和 QT,我希望在 C++ 的一些语法和使用某些 QT 函数方面得到一些帮助。在制作媒体管理器时,我设法通过按下表单中的按钮来播放歌曲。现在我想通过按另一
我在 Windows 8 Pro x64 上使用 Qt Creator 2.7.2 (Qt 5.1)。我在使用 QMediaPlayer 时遇到问题。我的 PC 上有一些 MP3 文件在 Window
我试图弄清楚 Qt 中的 QMediaPlayer 支持什么,但找不到特定的格式列表(MP3、AAC、FLAC、MIDI 等)。 最佳答案 QtMultimedia 中有几个可用的后端。例如,QtMu
我正在尝试在我的应用程序中设置 QVideoWidget,但没有音频/视频。这就是我创建相关对象的方式: m_player = new QMediaPlayer; m_playlist = new Q
我正在使用 Qmediaplayer 开发视频播放器。当我设置一个标签来显示视频的持续时间时,它显示了错误的值。 float duration = mediaPlayer.duration() / 1
我正在使用 QMediaPlayer 播放音频并且想要可视化音频电平(例如在 this video 中)。 我已经从 Qt 4 文档中找到了一个示例,但是他们手动生成了信号,我发现无法使用 QMedi
我正在使用 qt5.0。我创建了 dll 并将我所有的音频文件放在 dll 中。现在我正在从资源创建文件并播放。它工作正常。 但问题是播放文件后,我无法删除该文件并重新创建新文件。 如果我尝试手动删除
我正在尝试在 QMediaPlayer 的视频结束后执行某种操作/操作。我知道您可以检查播放器 player->state() 的状态,并且有一个“已停止”状态。但我想知道如何将这种状态与某个 Act
我想从 QMediaPlayer 中保存帧的图像.阅读文档后,我明白我应该使用 QVideoProbe .我正在使用以下代码: QMediaPlayer *player = new QMediaPla
如何使用 K-Lite Codec Pack 工具 DirectVobSub 禁用 QMediaPlayer 自动加载字幕?如果字幕文件位于视频文件的同一目录中,我不想在 QMediaPlayer 中
我知道 C++ 不支持 QMultimediaWidgets。我也在为 Android 开发 native 应用程序。因为我不使用 QML,所以我需要一种在应用程序中播放视频的方法。我想使用 QMed
这似乎太简单了,我一定是忽略了什么? 如何从 QMediaPlayer 显示的视频文件中找到原始视频大小或纵横比? 视频Resolution,PixelAspectRatio等,应该在MetaData
我是一名优秀的程序员,十分优秀!