Qt 5.4 QML VideoOutput не работает на iOS
Я пытаюсь воспроизвести видео со звуком в приложении для iOS с Qt или Qml. Моя среда это:
- Qt 5.4
- OSX Yosemite 10.10.2
- iPad 2 (iOS 8.3) и Iphone6 + (iOS 8.3)
Тестовый код (версия QML):
import QtQuick 2.4
import QtMultimedia 5.0
VideoOutput {
anchors.fill: parent
fillMode: VideoOutput.PreserveAspectFit
source: player
MediaPlayer {
id: player
autoPlay: true
onStatusChanged: {if (status==MediaPlayer.EndOfMedia) play();}
source: "qrc:/videos/vid2.mp4"
}
}
Тестовый код (версия C++):
QMainWindow w;
QVideoWidget* pVWidget = new QVideoWidget;
QMediaPlayer* pPlayer = new QMediaPlayer;
pPlayer->setMedia(QUrl("qrc:/videos/vid2.mp4"));
w.setCentralWidget(pVWidget);
w.show();
pPlayer->play();
Файл моего проекта (.pro
):
TEMPLATE = app
QT += core gui network sql widgets xmlpatterns quick qml multimedia multimediawidgets
SOURCES += main.cpp
RESOURCES += qml.qrc
Источник проверен:
- из ресурса:
qrc://videos/vid2.mp4
- из локального файла после успешного копирования в хранилище:
/var/mobile/Containers/Data/Application/12BD0B54-46B3-439F-9869-E06E1AC6CD87/Library/Application Support/data/vid1.mp4
- из видео онлайн:
http://www.rmh.de/9d0386eada217cd63a752458aeca89d6/9d0386eada217cd63a752458aeca89d6.mp4
Все работает нормально, когда выполняется Android или OS X, тогда как выполнение не удается как на устройствах iOS, так и на iOS Simulator.
Я пытался добавить QTPLUGING
но, как и должно быть, Творец обнаружил, что это дублирует. Я пытался с помощью QMAKE_BUNDLE_DATA
но это тоже не сработало. Я получил белый экран в версии QML и черный экран в версии C++.
Спасибо за вашу помощь.
1 ответ
Это ошибка Qt. https://bugreports.qt.io/browse/QTBUG-31422 https://bugreports.qt.io/browse/QTBUG-36175
Исправлено в Qt 5.5 предположительно.