2015-05-03 2 views
2

Я пытаюсь воспроизвести видео со звуком в приложении iOS с Qt или Qml. Моя среда:Qt 5.4 QML VideoOutput не работает на iOS

  • Qt 5.4
  • OSX Yosemite 10.10.2
  • IPad 2 (IOS 8,3) и Iphone6 ​​+ (IOS 8,3)

код Test (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++-версии.

Благодарим за помощь.

+0

Есть ли выход на консоли (панель «Application output» в Qt Creator)? –

+0

Нет ничего, нет сообщения об ошибке, нет предупреждения ... – Yannick

+0

Я только что обнаружил, что когда я проверяю onStatusChanged из MediaPlayer, эта остановка на MediaPlayer.InvalidMedia с строкой ошибки «Не удалось загрузить носитель». Другое открытие заключается в том, что если я загружаю свой qml из папки «Документы» приложения, видео указывается ... (с некоторыми другими проблемами макета, но начиная ...). Если я запускаю точно такой же qml-файл из ресурсов, запуск видео не запускается. – Yannick

ответ