Я настроил небольшой проект в папке «iosVideoTest /» для воспроизведения видео в приложении Qt / iOS:
iosVideoTest.pro:
QT += core gui multimedia multimediawidgets
QTPLUGIN += qavfmediaplayer
CONFIG += mobility
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = iosVideoTest
TEMPLATE = app
SOURCES += main.cpp
HEADERS +=
deployment.files = ../iosVideoTest/media/9d0386eada217cd63a752458aeca89d6.mp4
deployment.path =
QMAKE_BUNDLE_DATA += deployment
main.cpp:
#include <QApplication>
#include <QMainWindow>
#include <QMediaPlayer>
#include <QUrl>
#include <QVideoWidget>
int main(int argc, char *argv[]){
QApplication a(argc, argv);
QMainWindow w;
QVideoWidget* pVWidget = new QVideoWidget;
QMediaPlayer* pPlayer = new QMediaPlayer;
// with the following line a video is playing
pPlayer->setMedia(QUrl("http://www.rmh.de/9d0386eada217cd63a752458aeca89d6/9d0386eada217cd63a752458aeca89d6.mp4"));
// either of the following lines renders only a black screen
// pPlayer->setMedia(QUrl::fromLocalFile(QCoreApplication::applicationDirPath() + "9d0386eada217cd63a752458aeca89d6.mp4"));
// pPlayer->setMedia(QUrl::fromLocalFile("9d0386eada217cd63a752458aeca89d6.mp4"));
pPlayer->setVideoOutput(pVWidget);
w.setCentralWidget(pVWidget);
w.show();
pPlayer->play();
return a.exec();
}
Я скопировал видео http://www.rmh.de/9d0386eada217cd63a752458aeca89d6/9d0386eada217cd63a752458aeca89d6.mp4 в каталог ./media в папке проекта.
Использование веб-URL видео работает.
Однако при объединении видео внутри приложения и использовании локального имени файла отображается только черный экран.
РЕДАКТИРОВАТЬ: Использование изображения (расположенного по адресу ./iosVideoTest/media/img.png), связывание его через QMAKE_BUNDLE_DATA и использование его в качестве локального файла с QLabel / QPixmap работает как чудо…
Кто-нибудь может указать мне правильное направление для использования местных видеофайлов?
С Уважением,
Том
Задача ещё не решена.
Других решений пока нет …