我正在尝试准备 QML 插件以在嵌入式设备上播放视频,以便其他开发人员可以轻松使用它。然而,目前提出的方式几乎总是需要围绕您的 QML 应用程序编写一些 C++ 包装器。我指的是这个例子: http: //gstreamer.freedesktop.org/data/doc/gstreamer/head/qt-gstreamer/html/examples_2qmlplayer_2main_8cpp-example.html
我希望能够拥有插件并简单地编写:
import AwesomeVideoPlugin 1.0
Rect
{
AwesomeVideo
{
width: 320
height: 240
url: "./myvideo.avi"
// ... some minor stuff like mouse click handling, controls, etc.
}
}
目前 QtGStreamer 需要为 VideoItem 提供 videoSurface 属性。这样做的唯一方法是在 rootContext() 中为附加属性创建和设置上下文。并创建 GraphicsVideoSurface 我需要 QGraphicsView (QDeclarativeView 填补这个角色)。
是否有可能:
从 QDeclarativeItem(我只能从 QML 插件访问)中获取 QDeclarativeView,以便以后可以用于提供 GraphicsVideoSurface?我的猜测是否定的——但是我找到了路径 QFraphicsItem::scene() ==> QGraphScene ==> QGraphScene::views() ==> QGraphicsView 的 QList——它看起来像非常糟糕的编程,但也许有人让它工作(我得到段错误)
是否有其他方法可以从 QDeclarativeItem 为 QtGStreamer 提供视频接收器?
格雷茨
八字