Russian Qt Forum
Май 04, 2024, 06:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: vlc и qt5.2. Проект не запускается  (Прочитано 7744 раз)
skullhead
Гость
« : Апрель 07, 2014, 21:19 »

Пытаюсь заставить работать vlc вместе с qt5.2. Скачал готовые библиотеки VLC-Qt for Windows 64-bit (MSVC 2012).
Проект из папки с примерами отказался собираться.Насколько я понял,он вообще написан под qt4,судя по .pro файлу.
Собственно задача сейчас- просто воспроизвести видео-файл.Я удалил из примера все ,что мне не нужно на данный момент,и оставил только то,что относится непосредственно к воспроизведению.В результате проект собирается,но крашится сразу после запуска.В чем может быть дело?Всем заранее спасибо за помощь,я уже голову сломал и кучу сайтов перелопатил.

DemoPlayer.h
Код:
#ifndef DEMOPLAYER_H_
#define DEMOPLAYER_H_
#include <QMainWindow>
class VlcInstance;
class VlcMedia;
class VlcMediaPlayer;

class DemoPlayer : public QMainWindow
{
Q_OBJECT
public:
    explicit DemoPlayer(QWidget *parent = 0);

private:
    VlcInstance *_instance;
    VlcMedia *_media;
    VlcMediaPlayer *_player;
};

#endif // DEMOPLAYER_H_

DemoPlayer.cpp

Код:
#include <vlc-qt/Common.h>
#include <vlc-qt/Instance.h>
#include <vlc-qt/Media.h>
#include <vlc-qt/MediaPlayer.h>

#include "DemoPlayer.h"

DemoPlayer::DemoPlayer(QWidget *parent)
    : QMainWindow(parent),
      _media(0)
{
    _instance = new VlcInstance(VlcCommon::args(), this);
    _media = new VlcMedia("C:/promo/repeat.mp4", true, _instance);
    _player = new VlcMediaPlayer(_instance);
    _player->open(_media);
    _player->play();
}

main.cpp

Код:
#include <QApplication>

#include "DemoPlayer.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    DemoPlayer mainWindow;
    mainWindow.show();

    return app.exec();
}

.pro

Код:
TARGET      = demo-player
TEMPLATE    = app

QT          += widgets


SOURCES     += main.cpp\
               DemoPlayer.cpp

HEADERS     += DemoPlayer.h


LIBS        += -lvlc-qt -lvlc-qt-widgets

LIBS     += -LC:\vlc\lib -lvlc-qt -lvlc-qt-widgets
INCLUDEPATH += C:\vlc\include
Записан
skullhead
Гость
« Ответ #1 : Апрель 07, 2014, 21:56 »

С другими версиями библиотек похожая ситуация-проект либо не собирается,либо крашится после запуска.Если у кого-то есть рабочий проект с подключенной библиотекой VLC,поделитесь пожалуйста,и назовите точную конфигурацию компонентов которые надо установить.
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #2 : Апрель 08, 2014, 06:03 »

Еще раз,  какая версия Qt ?

Судя по используемому VLC-Qt for Windows 64-bit (MSVC 2012) ожидается
Кьют 5.2.1-msvc2012

Краш при пуске? Запускать в отладчике.

Еще, для того-чтобы успешно дебажить, необходимо использовать  дебажные библитеки VLC-Qt    *d.dll   *d.lib
Записан

skullhead
Гость
« Ответ #3 : Апрель 08, 2014, 07:42 »

Еще раз,  какая версия Qt ?

Судя по используемому VLC-Qt for Windows 64-bit (MSVC 2012) ожидается
Кьют 5.2.1-msvc2012

Да,именно Кьют 5.2.1-msvc2012

Краш при пуске? Запускать в отладчике.

Еще, для того-чтобы успешно дебажить, необходимо использовать  дебажные библитеки VLC-Qt    *d.dll   *d.lib

с таким окончанием библиотек не нашел,но насколько я понимаю,дебажные библиотеки ,это как раз те,что лежат в папке "debug"?и их надо подключить вместо обычных?

Дебагер тоже крашится(причем только на этом проекте.наверно я насчет дебажных библиотек не правильно понял.
« Последнее редактирование: Апрель 08, 2014, 10:26 от skullhead » Записан
skullhead
Гость
« Ответ #4 : Апрель 10, 2014, 16:51 »

Проблему частично решил.Проект собирается и запускается.НО только после того,как я скопировал в папку build все библиотеки .dll из папки bin готового примера и всю папку plugins.новый вопрос-как сделать так,чтобы не нужно было вручную все эти библиотеки копировать?
Записан
skullhead
Гость
« Ответ #5 : Апрель 13, 2014, 10:30 »

Еще одна проблема встала у меня на пути) Видео воспроизводится,но в занимает только маленькую область в углу главного окна.как сделать,чтобы видеовиджет занимал все окно?

Код:
#include <vlc-qt/Common.h>
#include <vlc-qt/Instance.h>
#include <vlc-qt/Media.h>
#include <vlc-qt/MediaPlayer.h>
#include <vlc-qt/MediaListPlayer.h>
#include <vlc-qt/MediaList.h>
#include <vlc-qt/WidgetVideo.h>
#include "DemoPlayer.h"

#include <QtWidgets>


DemoPlayer::DemoPlayer(QWidget *parent)
    : QMainWindow(parent),
      _videowidget(0),
      _media(0)
{
    _instance = new VlcInstance(VlcCommon::args(), this);
    _media = new VlcMedia("C:/promo/repeat.mp4", true, _instance);
    _player = new VlcMediaPlayer(_instance);
    _videowidget = new VlcWidgetVideo(_player,this);
    _player->setVideoWidget(_videowidget);
    _videowidget->show();
    _player->open(_media);
    _player->play();

}
Записан
shedy2
Гость
« Ответ #6 : Сентябрь 06, 2014, 23:06 »

Проблему частично решил.Проект собирается и запускается.НО только после того,как я скопировал в папку build все библиотеки .dll из папки bin готового примера и всю папку plugins.новый вопрос-как сделать так,чтобы не нужно было вручную все эти библиотеки копировать?

Подскажи, что сделал, что проект запустился? Та же проблема, не понимаю, как решить
Записан
RSATom
Гость
« Ответ #7 : Сентябрь 07, 2014, 17:26 »

Существует такая волшебная утилита, DependancyWalker ( http://www.dependencywalker.com/ ) называется... Как раз предназначена для решения подобного рода проблем...

upd: а с советом то я оказывается опоздал - он уже был в другой теме...
« Последнее редактирование: Сентябрь 07, 2014, 17:37 от RSATom » Записан
skullhead
Гость
« Ответ #8 : Сентябрь 27, 2014, 20:17 »

Проблему частично решил.Проект собирается и запускается.НО только после того,как я скопировал в папку build все библиотеки .dll из папки bin готового примера и всю папку plugins.новый вопрос-как сделать так,чтобы не нужно было вручную все эти библиотеки копировать?

Подскажи, что сделал, что проект запустился? Та же проблема, не понимаю, как решить
Просто все библиотеки скопировал в папку release (или debug).главное использовать нужные dll vlc.
а чтобы через .exe запускать,нужно еще библиотеки qt закинуть туда же.
Записан
RSATom
Гость
« Ответ #9 : Сентябрь 28, 2014, 08:04 »

на самом деле достаточно добавить пути к %QTDIR%/bin и vlc в %PATH%...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 23.