Доброго времени суток господа программисты пишу вам по такому вопросу: у меня в программе есть видео плеер и требуется чтобы по нажатии кнопки плеер начал воспроизводить определенный видеофайл (лежит у экзешника). Тоесть сам без стандартного окошка выбора файла. Вот листинг видео плеера который я взял за основу:
Video.pro
######################################################################
# Automatically generated by qmake (2.01a) ?? 14. ??? 21:28:46 2008
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
QT += phonon
# Input
HEADERS += mainwin.h
SOURCES += main.cpp mainwin.cpp
mainwin.h
#ifndef _MAINWIN_H_
#define _MAINWIN_H_
#include <QtGui>
#include <phonon>
// using namespace Phonon;
class Mainwin : public QMainWindow {
Q_OBJECT
public:
Mainwin();
private slots:
void selectfile();
void playfile();
void setvolume(int);
private:
Phonon::VideoPlayer *player;
QToolBar *toolbar;
QPushButton *openbutton, *playbutton, *pausebutton, *stopbutton;
QSlider *volumeslider;
Phonon::SeekSlider *seekslider;
};
#endif // _MAINWIN_H_
main.cpp
#include <QtGui>
#include <mainwin.h>
int main(int argv, char **args){
QApplication app(argv, args);
app.setApplicationName("Video Player");
Mainwin win;
win.show();
return app.exec();
}
mainwin.cpp
#include <QtGui>
#include "mainwin.h"
Mainwin::Mainwin(){
QWidget *widget = new QWidget(this);
QVBoxLayout *lay = new QVBoxLayout(widget);
player = new Phonon::VideoPlayer(Phonon::VideoCategory);
lay->addWidget(player, 1);
seekslider = new Phonon::SeekSlider;
seekslider->setMediaObject(player->mediaObject());
lay->addWidget(seekslider, 0);
toolbar = addToolBar(tr("toolbar"));
openbutton = new QPushButton(tr("Open"), toolbar);
toolbar->addWidget(openbutton);
connect(openbutton, SIGNAL(clicked()), this, SLOT(selectfile()));
playbutton = new QPushButton(tr("Play"), toolbar);
toolbar->addWidget(playbutton);
connect(playbutton, SIGNAL(clicked()), this, SLOT(playfile()));
stopbutton = new QPushButton(tr("Stop"), toolbar);
toolbar->addWidget(stopbutton);
connect(stopbutton, SIGNAL(clicked()), player, SLOT(stop()));
pausebutton = new QPushButton(tr("Pause"), toolbar);
toolbar->addWidget(pausebutton);
connect(pausebutton, SIGNAL(clicked()), player, SLOT(pause()));
volumeslider = new QSlider(Qt::Horizontal, toolbar);
volumeslider->setRange(0, 100);
volumeslider->setValue(100);
connect(volumeslider, SIGNAL(valueChanged(int)), this,
SLOT(setvolume(int)));
toolbar->addWidget(volumeslider);
widget->setLayout(lay);
setCentralWidget(widget);
}
void Mainwin::selectfile(){
QString filename = QFileDialog::getOpenFileName(
this, tr("Select video file"), ".");
if (filename.isEmpty())
return;
player->play(filename);
resize(sizeHint());
}
void Mainwin::playfile(){
player->play();
resize(sizeHint());
}
void Mainwin::setvolume(int value){
float volume;
volume = (static_cast<float>(value)) / 100;
player->setVolume(volume);
}
Данный плеер рабочий и свои функции он выполняет, мне кажется что если заменить в этой части
void Mainwin::selectfile(){
QString filename = QFileDialog::getOpenFileName(
this, tr("Select video file"), ".");
if (filename.isEmpty())
return;
player->play(filename);
resize(sizeHint());
}
Переменную filename на название искомого файла или же просто вписать вместо нее название то я получу то что мне нужно:
void Mainwin::playfile(){
player->play("1.avi");
resize(sizeHint());
}
пробовал так однако нефига не получается((( Думаю из за того что действую в корне не верно...
Посему вопрос: как это реализовать?