Qt媒体播放器C++



当用户单击某个键时,我正在尝试播放音乐。但当我第一次点击时,音乐只播放一次。请帮忙。

#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有一个官方媒体播放器的例子。链路

注意:媒体的加载是异步的。播放/停止/暂停将控制流的位置,以便您可以通过控制它来重播。请查看示例项目。

最新更新