当前位置: 技术问答>linux和unix
在unbunto qtcreate中定时器是否会影响视频播放?
来源: 互联网 发布时间:2017-04-28
本文导语: 今天做了个简易视频播放。遇到个问题,当播放视频时,视频中间会时不时出现黑框。这是否跟我做了定时器有关?如果是,那应该如何解决?(定时器用来获取播放时间)。望各位大神帮帮忙!代码如下 #include "pho...
今天做了个简易视频播放。遇到个问题,当播放视频时,视频中间会时不时出现黑框。这是否跟我做了定时器有关?如果是,那应该如何解决?(定时器用来获取播放时间)。望各位大神帮帮忙!代码如下
#include "phonon_indie.h"
#include "ui_phonon_indie.h"
#include
#include
#include
#include
#include
Phonon_Indie::Phonon_Indie(QWidget *parent) :
QWidget(parent),
ui(new Ui::Phonon_Indie)
{
ui->setupUi(this);
media=new Phonon::MediaObject(this);
videowidget = new Phonon::VideoWidget(this);
Phonon::createPath(media,videowidget);
Phonon::AudioOutput *audio= new Phonon::AudioOutput(Phonon::VideoCategory,this);
Phonon::createPath(media,audio);
media->setCurrentSource(Phonon::MediaSource("../phonon_indie/myVideo.WMV"));
videowidget->move(9,9);
videowidget->resize(381,141);
//创建媒体的窗口
Phonon::SeekSlider *seekSlider= new Phonon::SeekSlider(media,this);
seekSlider->move(0,150);
seekSlider->resize(401,31);
//创建滑动条
QVBoxLayout *vboxlayout=new QVBoxLayout;
vboxlayout->addWidget(videowidget);
vboxlayout->addWidget(seekSlider);
QHBoxLayout *hboxlayout=new QHBoxLayout;
hboxlayout->addWidget(ui->PlayButton);
hboxlayout->addWidget(ui->lineEdit);
hboxlayout->addWidget(ui->time_label);
vboxlayout->addLayout(hboxlayout);
setLayout(vboxlayout);
//创建布局管理器
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timeUpdate()));
timer->start(1000);//1 second
//创建定时器
}
Phonon_Indie::~Phonon_Indie()
{
delete ui;
}
void Phonon_Indie::timeUpdate()
{
// nowtime=ui->videoPlayer->currentTime();
qint64 total_time_value = media->totalTime();//直接获取该音频文件的总时长参数,单位为毫秒
//这3个参数分别代表了时,分,秒;60000毫秒为1分钟,所以分钟第二个参数是先除6000,第3个参数是直接除1s
time =media->currentTime();
QTime total_time(0, (total_time_value/60000)%60, (total_time_value/1000)%60);
QTime current_time(0, (time/60000)%60, (time/1000)%60);//传进来的time参数代表了当前的时间
QString str = current_time.toString("mm:ss") + "/" + total_time.toString("mm:ss");
ui->time_label->setText(str);
}
//定时器函数
void Phonon_Indie::on_PlayButton_clicked()
{
media->play();
}
#include "phonon_indie.h"
#include "ui_phonon_indie.h"
#include
#include
#include
#include
#include
Phonon_Indie::Phonon_Indie(QWidget *parent) :
QWidget(parent),
ui(new Ui::Phonon_Indie)
{
ui->setupUi(this);
media=new Phonon::MediaObject(this);
videowidget = new Phonon::VideoWidget(this);
Phonon::createPath(media,videowidget);
Phonon::AudioOutput *audio= new Phonon::AudioOutput(Phonon::VideoCategory,this);
Phonon::createPath(media,audio);
media->setCurrentSource(Phonon::MediaSource("../phonon_indie/myVideo.WMV"));
videowidget->move(9,9);
videowidget->resize(381,141);
//创建媒体的窗口
Phonon::SeekSlider *seekSlider= new Phonon::SeekSlider(media,this);
seekSlider->move(0,150);
seekSlider->resize(401,31);
//创建滑动条
QVBoxLayout *vboxlayout=new QVBoxLayout;
vboxlayout->addWidget(videowidget);
vboxlayout->addWidget(seekSlider);
QHBoxLayout *hboxlayout=new QHBoxLayout;
hboxlayout->addWidget(ui->PlayButton);
hboxlayout->addWidget(ui->lineEdit);
hboxlayout->addWidget(ui->time_label);
vboxlayout->addLayout(hboxlayout);
setLayout(vboxlayout);
//创建布局管理器
QTimer *timer=new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timeUpdate()));
timer->start(1000);//1 second
//创建定时器
}
Phonon_Indie::~Phonon_Indie()
{
delete ui;
}
void Phonon_Indie::timeUpdate()
{
// nowtime=ui->videoPlayer->currentTime();
qint64 total_time_value = media->totalTime();//直接获取该音频文件的总时长参数,单位为毫秒
//这3个参数分别代表了时,分,秒;60000毫秒为1分钟,所以分钟第二个参数是先除6000,第3个参数是直接除1s
time =media->currentTime();
QTime total_time(0, (total_time_value/60000)%60, (total_time_value/1000)%60);
QTime current_time(0, (time/60000)%60, (time/1000)%60);//传进来的time参数代表了当前的时间
QString str = current_time.toString("mm:ss") + "/" + total_time.toString("mm:ss");
ui->time_label->setText(str);
}
//定时器函数
void Phonon_Indie::on_PlayButton_clicked()
{
media->play();
}
|
顶顶顶,帮我解决问题了~~~~
|
那你先把定时器去掉看看有没有同样的问题,没有的话可能就是它的影响了。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。