【问题标题】:Qt 5.4 QML VideoOutput not working on iOSQt 5.4 QML VideoOutput 在 iOS 上不起作用
【发布时间】:2015-07-12 19:47:48
【问题描述】:

我正在尝试使用 Qt 或 Qml 在 iOS 应用程序中播放带声音的视频。 我的环境是:

  • Qt 5.4
  • OSX 优胜美地 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 模拟器上执行失败。

我尝试添加QTPLUGING,但应该如此,Creator 发现它在重复。我尝试使用QMAKE_BUNDLE_DATA,但这也不起作用。 QML 版本出现白屏,C++ 版本出现黑屏。

感谢您的帮助。

【问题讨论】:

  • 控制台上是否有任何输出(Qt Creator 中的“应用程序输出”窗格)?
  • 什么都没有,没有错误信息,没有警告......
  • 我刚刚发现,当我检查 MediaPlayer 的 onStatusChanged 时,这一步在 MediaPlayer.InvalidMedia 上停止,错误字符串为“加载媒体失败”。另一个发现是,如果我从应用程序的 Documents 文件夹加载我的 qml,视频会说明...(还有其他一些布局问题,但开始...)。如果我从资源中启动完全相同的 qml 文件,则不会启动视频。

标签: ios qt video qml qtmultimedia


【解决方案1】:

这是一个 Qt 错误。 https://bugreports.qt.io/browse/QTBUG-31422 https://bugreports.qt.io/browse/QTBUG-36175

据说已在 Qt 5.5 中修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 2020-09-16
    相关资源
    最近更新 更多