当用户单击某个键时,我正在尝试播放音乐。但当我第一次点击时,音乐只播放一次。请帮忙。
#include <QApplication>
#include <QGraphicsView>
#include <QMediaPlayer>
#include <QAudioOutput>
#include <QGraphicsRectItem>
#include <QGraphicsScene>
#include <QKeyEvent>
#include <QDebug>
class Rect : public QGraphicsRectItem
{
public:
Rect()
{
player = new QMediaPlayer();
output = new QAudioOutput();
player->setAudioOutput(output);
output->setVolume(50);
player->setSource(QUrl("qrc:/sounds/gun.mp3"));
player->play();
}
void keyPressEvent(QKeyEvent* ev)
{
player->play();
}
private:
QMediaPlayer* player;
QAudioOutput* output;
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene* scene= new QGraphicsScene();
Rect* rect = new Rect();
rect->setFlags(QGraphicsItem::ItemIsFocusable);
rect->setFocus();
rect->setRect(0, 0, 300, 400);
scene->addItem(rect);
QGraphicsView* view = new QGraphicsView(scene);
view->show();
return a.exec();
delete view;
delete scene;
delete rect;
}
Qt有一个官方媒体播放器的例子。链路
注意:媒体的加载是异步的。播放/停止/暂停将控制流的位置,以便您可以通过控制它来重播。请查看示例项目。