【问题标题】:QMediaPlayer on Android安卓上的 QMediaPlayer
【发布时间】:2016-08-16 15:40:47
【问题描述】:

我知道 C++ 不支持 QMultimediaWidgets。我也在为 Android 开发本机应用程序。由于我不使用 QML,我需要一种在应用程序中播放视频的方法。我想使用 QMediaPlayer,因为我依赖于信号和插槽。是否有任何可在 Android 上运行的手动开发的后端或解决方案如何让我自己仍然使用 QMediaPlayer 渲染视频?

有没有一种方法可以让我自己使用 ffmpeg 或 Android 上的任何可用程序开发这样的后端? Qt 中是否会有任何更新?

【问题讨论】:

    标签: android c++ qt ffmpeg


    【解决方案1】:

    Android 不支持 QtMultimediaWidgets,因此您需要使用 QML 元素。理论上,您可以尝试使用 QWidget::createWindowContainer 在基于 QWidget 的应用程序中使用 MediaPlayer 和 VideoOutput 元素嵌入 QML 场景。一旦你看到这可以完成,你可以使用 MediaPlayer QML 元素的mediaObject 属性从 QML 获取你的 QMediaPlayer 对象。实际上,我从未尝试过这样做。

    您也可以尝试使用其他插件,例如QtAV,但您可能会失去加速。

    【讨论】:

    • 感谢您的回答。我目前正在尝试动态加载 QML 脚本并设置 MediaPlayer 的源并通过 invokeMethod 调用访问所有内容。可以听到声音,但没有出现视频,尽管 Android 模拟器没有打印任何与视频编码相关的错误。我使用使用 QWidget::createWindowContainer() 创建的小部件,它需要一些空间,但没有视频。
    • 你在真机上试过了吗?
    • 还没有。目前我没有可用的真实设备,但各种模拟器没有显示视频,尽管我使用了 Android 文档支持的编码。也许我只会尝试 QML 应用程序。
    • Android 模拟器通常不受信任。
    • 顺便说一句。我尝试为 Android 编译 QtAv,但它说缺少 avutils。在模拟器上使用 QML 自动播放视频时,我收到类似“NuPlayer:onSetVideoSurface 无视频解码器”的消息。这是否意味着编解码器错误或模拟器根本没有解码器?声音通常有效,但我没有看到任何视频。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 2023-03-10
    • 2010-09-28
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多