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 предположительно.

Другие вопросы по тегам