Я пытался создать пользовательский проигрыватель для iOS
, но создание поверхности оказалось довольно сложным для понимания, поэтому я подумал, можно ли просто создать пользовательский MediaPlayer
, который мы передаем в QML-ы 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>
и переопределить некоторые его функции для создания пользовательского компонента?
Если бы кто-то сделал что-то подобное, это очень помогло бы.