• 8457阅读
  • 3回复

第一个QT播放器QT mediaplayer  不能获放播放进度 [复制链接]

上一主题 下一主题
离线fenger
 
只看楼主 倒序阅读 楼主  发表于: 2009-12-28
在网上找了一个别人的旧版本的播放器~自己更改了一天,终于可运行了,希望分享下同共学习;
不过出了少少问题:希望有经验的一起指导下:
运行环境:qt creator +windows


1、原计划是可支持视频播放的,现在只能加载间频(mp3),一加载视频就卡死
2.、自定义的进度条不起作用,不知为什么百分比槽连接不成功
 connect(wmp, SIGNAL(PositionChange(double, double)),this, SLOT(Slot_onPositionChange(double, double)));

3、我用的是QAxWidget控件,这个是不是只支持windows的呢?或者还有没其实更好的?

/*******************************************************************************************
项目名:QT播放器 Qt Mediaplayer
工程师:枫儿
完成时间:2009年12月28日
技术支持:嵌入式家园 www.studyarm.cn www.mcupark.com
*******************************************************************************************/
#include "playerwindow.h"
#include <QPushButton>
#include <QAxWidget>
#include <QSlider>
#include <QLayout>
#include <QTimer>
#include <QTimerEvent>
#include <QFileDialog>
#include <QDir>
PlayerWindow::PlayerWindow()
{
//setCaption(tr("Media Player"));
fileFilters = tr("Video files (*.mpg *.mpeg *.avi *.wmv)\n" //原来字符串换行也可这样用
"Audio files (*.mp3 *.wav)");
updateTimer = 0;

setMouseTracking(true);

this->wmp = new QAxWidget(this);
wmp->setControl("{22D6F312-B0F6-11D0-94AB-0080C74C7E95}");
// wmp->setProperty("ShowControls", QVariant(false, 0));
wmp->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
connect(wmp, SIGNAL(PlayStateChange(int, int)),this, SLOT(Slot_onPlayStateChange(int, int)));
connect(wmp, SIGNAL(ReadyStateChange(ReadyStateConstants)),this, SLOT(Slot_onReadyStateChange(ReadyStateConstants)));
connect(wmp, SIGNAL(PositionChange(double, double)),this, SLOT(Slot_onPositionChange(double, double)));

this->openButton = new QPushButton(tr("&Open"));
connect(openButton, SIGNAL(clicked()), this, SLOT(Slot_openFile()));

this->playPauseButton = new QPushButton(tr("&Play"));
connect(playPauseButton, SIGNAL(clicked()), wmp, SLOT(Play()));

this->stopButton = new QPushButton(tr("&Stop"));
connect(stopButton, SIGNAL(clicked()), wmp, SLOT(Stop()));

this->seekSlider = new QSlider(Qt::Horizontal, this);
seekSlider->setEnabled(false);
connect(seekSlider, SIGNAL(valueChanged(int)),this, SLOT(Slot_sliderValueChanged(int)));
connect(seekSlider, SIGNAL(sliderPressed()),wmp, SLOT(Pause()));

QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(openButton);
buttonLayout->addWidget(playPauseButton);
buttonLayout->addWidget(stopButton);

QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->addWidget(wmp);
mainLayout->addLayout(buttonLayout);
mainLayout->addWidget(seekSlider);
this->setLayout(mainLayout);
}

嵌入式家园www.studyarm.cn QTmediaplayer.rar (1536 K) 下载次数:96
没有做不到,只有想不到~
离线benbenmajia

只看该作者 1楼 发表于: 2009-12-28
这个里面的播放器是自己做的吗?没有用phonon吧?
安然.....
离线fenger
只看该作者 2楼 发表于: 2009-12-28
也是网站下载别人代码修改的,用了QAxWidget库,看手册好像话这个是window的Axtive插件
没有做不到,只有想不到~
离线benbenmajia

只看该作者 3楼 发表于: 2009-12-28
恩,是window下的COM
安然.....
快速回复
限100 字节
 
上一个 下一个