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";

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值