我一直在尝试为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>
并覆盖其某些功能来创建自定义组件?
如果有人做了类似的事情,将大有帮助。