创建可传递给VideoOutput的最小自定义MediaPlayer组件

时间:2019-01-16 15:40:23

标签: c++ objective-c qt qml qqmlcomponent

我一直在尝试为iOS创建自定义播放器,但事实证明,创建曲面非常复杂,因此,我在思考是否有可能仅创建我们通过的自定义MediaPlayer到QML-s VideoOutput组件,以便它为我处理视频渲染。

类似这样的东西:

import QtQuick 2.9
import QtQuick.Window 2.3
import QtQuick.Controls 2.2
import QtMultimedia 5.9
import QtQuick.Layouts 1.3

//import MyCustomPlayer 1.0

ApplicationWindow {
    visible: true
    visibility: Window.FullScreen

    // this would be replaced with my custom MediaPlayer defined in "MyCustomPlayer 1.0"
    MediaPlayer { 
        id: player
        source: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"
        autoPlay: true
    }

    VideoOutput {
        id: videoOutput
        source: player
        anchors.fill: parent
    }
}

这样,我就将我的自定义播放器传递给VideoOutput

由于自定义播放器本身应该与原始MediaPlayer非常相似,因此我查看了qtmediaplayer的源代码,试图了解实现的工作原理。

我知道如何使用qmlRegisterType制作基本组件,但是使该组件正常工作的最低步骤是什么(接收视频源并将其传递给VideoOutput)。 据我了解,iOS播放器的大部分代码都放在avfoundation文件夹中。

或者是否可以包含<QtMultimedia/qmediaplayer.h>并覆盖其某些功能来创建自定义组件?

如果有人做了类似的事情,将大有帮助。

0 个答案:

没有答案