QT 播放器设置

#include "widget.h"

#include "ui_widget.h"

#include <QtCore/QTime>

#include <QFile>

#include <QTimer>

#include <QVBoxLayout>

#include <QVideoWidget>

Widget::Widget(QWidget *parent) :

    QWidget(parent),

    ui(new Ui::Widget)

{

    ui->setupUi(this);

    ui->verticalSlider->setRange(1,1000);

}

void Widget::onTimerOut()

{

    int pos=player->position()*1000.0/player->duration();

    qDebug()<<pos;

    if(pos<0)pos=0;

       QTime showTime(0,0,0,0);

       showTime = showTime.addMSecs(player->position());

       ui->label->setText(showTime.toString("hh:mm:ss:zzz"));

}

Widget::~Widget()

{

    delete ui;

}

void Widget::on_pushButton_clicked()

{

    QVBoxLayout *layout = new QVBoxLayout;

        QVideoWidget *videoWidget = new QVideoWidget;

    player=new QMediaPlayer();

    //    QMediaPlaylist* playlist=new QMediaPlaylist;

        layout->addWidget(videoWidget);

        ui->widget->setLayout(layout);

        QFile file("D:/迅雷下载/anod/Asspirations/v01.mp4");

        if(!file.open(QIODevice::ReadOnly))

            qDebug() << "Could not open file";

        player->setMedia(QUrl::fromLocalFile("D:/迅雷下载/anod/Asspirations/v01.mp4"));

        player->setVideoOutput(videoWidget);

        videoWidget->show();

        ui->widget->showFullScreen();

        player->play();

        QTimer *timer = new QTimer();

        timer->setInterval(1000);//如果想看起来流畅些,可以把时间间隔调小,如100ms

        //将timer连接至onTimerOut槽函数

        connect(timer, SIGNAL(timeout()), this, SLOT(onTimerOut()));

            timer->start();

}

void Widget::on_verticalSlider_sliderMoved(int position)

{

    player->setVolume(position);

}

void Widget::on_verticalSlider_actionTriggered(int action)

{

    player->setVolume(ui->verticalSlider->value());

}

void Widget::on_horizontalSlider_sliderMoved(int position)

{

   player->setPosition(position/1000.0*player->duration());

   qDebug()<<position<<":pos";

}

发布了18 篇原创文章 · 获赞 1 · 访问量 2180

猜你喜欢

转载自blog.csdn.net/leng3667/article/details/102908151
今日推荐