PDA

View Full Version : Integrating Mplayer inside Qt Tab



hitesh_sharma@satyam
18th April 2012, 11:12
I am trying to integrate Mplayer into a TAB how ever I am not getting the Black screen of the player I am getting only the silders






#include <QtGui>
#include <QDebug>
#include <string>

#include "tabdialog.h"
#include <QIcon>
#include "qmpwidget.h"
#include <QFileDialog>
#include <QGridLayout>
#include <QShowEvent>
#include <QSlider>
QString file;
#include<QVBoxLayout>
#include<QHBoxLayout>


// Custom player
class Player : public QMPwidget
{
// Q_OBJECT

public:
Player(const QStringList &args, const QString &url, QWidget *parent = 0)
: QMPwidget(parent), m_url(url)
{
connect(this, SIGNAL(stateChanged(int)), this, SLOT(stateChanged(int)));
QMPwidget::start(args);
}

private slots:
void stateChanged(int state)
{
if (state == QMPwidget::NotStartedState) {
QApplication::exit();
} else if (state == QMPwidget::PlayingState && mediaInfo().ok) {
if (parentWidget()) {
parentWidget()->resize(mediaInfo().size.width(), mediaInfo().size.height());
} else {
resize(mediaInfo().size.width(), mediaInfo().size.height());
}
}
}

protected:
void showEvent(QShowEvent *event)
{
if (!event->spontaneous() && state() == QMPwidget::IdleState) {
QMPwidget::load(m_url);
}
}

void keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_O) {
QString url = QFileDialog::getOpenFileName(this, tr("Play media file..."));
if (!url.isEmpty()) {
m_url = url;
QMPwidget::load(m_url);
}
} else {
QMPwidget::keyPressEvent(event);
}
}

private:
QString m_url;
};












TabDialog::TabDialog(const QString &fileName, QWidget *parent)
: QDialog(parent)
{
QFileInfo fileInfo(fileName);

tabWidget = new QTabWidget;
tabWidget->addTab(new GeneralTab(fileInfo), tr("Multimedia"));
tabWidget->addTab(new PermissionsTab(fileInfo), tr("TERMINAL MODE"));
tabWidget->addTab(new ApplicationsTab(fileInfo), tr("NAVIGATION"));

buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
| QDialogButtonBox::Cancel);

connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));

QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(tabWidget);
// mainLayout->addWidget(buttonBox);
setLayout(mainLayout);

setWindowTitle(tr("Tab Dialog"));
}


GeneralTab::GeneralTab(const QFileInfo &fileInfo, QWidget *parent): QWidget(parent)
{
/*QWidget widget;
QVBoxLayout *mainLayout = new QVBoxLayout();
openButton = new QPushButton();

openButton->setIcon(QIcon("/home/satyam/Desktop/Tabs/open.png"));
openButton->setIconSize(QSize(100,100));
// openButton->setMinimumWidth(10);
openButton->setMinimumHeight(100);
//openButton->setMaximumHeight(100);
openButton->setMaximumWidth(100);

QSlider seekSlider(Qt::Horizontal, &widget);
QSlider volumeSlider(Qt::Horizontal, &widget);


mainLayout->addWidget(&seekSlider);
mainLayout->addWidget(&volumeSlider);
mainLayout->addWidget(openButton);

connect(openButton,SIGNAL(clicked()),this,SLOT(on_ pushButton_clicked()),Qt::AutoConnection);

setLayout(mainLayout);*/

QWidget widget;

QHBoxLayout layout;


QPushButton *play =new QPushButton("play");

play->setMaximumWidth(40);
QPushButton *pause =new QPushButton("pause");
pause->setMaximumWidth(40);

QPushButton *stop =new QPushButton("stop");

QPushButton *quit =new QPushButton("quit");

layout.addWidget(play);
layout.addWidget(pause);
layout.addWidget(stop);
layout.addWidget(quit);
widget.setLayout(&layout);



//widget.setWindowFlags( Qt::CustomizeWindowHint );

//widget.showMaximized();


}

PermissionsTab::PermissionsTab(const QFileInfo &fileInfo, QWidget *parent)
: QWidget(parent)
{
QWidget widget;


QVBoxLayout *mainlayout = new QVBoxLayout;
QHBoxLayout *toplayout = new QHBoxLayout;
QVBoxLayout *botmlayout = new QVBoxLayout;


seekSlider =new QSlider(Qt::Horizontal);
volumeSlider =new QSlider(Qt::Horizontal);



QStringList args = QApplication::arguments();
QString url;
args.pop_front();
if (!args.isEmpty() && !args.last().startsWith("-")) {
url = args.last();
args.pop_back();
}


Player player(args, url, &widget);
player.setVolumeSlider(volumeSlider);
player.setSeekSlider(seekSlider);



toplayout->addWidget(seekSlider);
toplayout->addWidget(volumeSlider);

botmlayout->addWidget(&player);
botmlayout->addLayout(toplayout);

// mainlayout->addLayout(toplayout);
mainlayout->addLayout(botmlayout);
setLayout(mainlayout);
}

ApplicationsTab::ApplicationsTab(const QFileInfo &fileInfo, QWidget *parent)
: QWidget(parent)
{

}

hitesh_sharma@satyam
20th April 2012, 13:26
Project source code is available at

http://www.2shared.com/file/sxDtXzjC/Tabs.html

I am trying to add media player based on mplayer inti the TAB.