他の開発者が手間をかけずに使用できるように、組み込みデバイスでビデオを再生する 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 は videoSurface プロパティを VideoItem に提供する必要があります。これを行う唯一の方法は、rootContext() で追加のプロパティのコンテキストを作成して設定することです。GraphicsVideoSurface を作成するには、QGraphicsView が必要です (QDeclarativeView がこの役割を果たします)。
次のことは可能ですか。
QDeclarativeItem 内から QDeclarativeView を取得し (QML プラグインからのみアクセスできます)、後で GraphicsVideoSurface をフィードするために使用できるようにしますか? 私の推測ではありません-しかし、パス QFraphicsItem::scene() ==> QGraphScene ==> QGraphScene::views() ==> QList of QGraphicsView を見つけました-非常に悪いプログラミングのように見えますが、誰かがそれを機能させたのかもしれません(私はセグメンテーション違反を起こしています)
QDeclarativeItem 内から QtGStreamer のビデオシンクを提供する他の方法はありますか?
グリーツ
ヤッツァ