質問

(ストリーミングまたはローカル) ビデオを再生する Qt S60 アプリ (第 3 版、FP2) を構築した人はいますか?

(たとえば) QDesktopServices ではなく、ウィジェット「内」でビデオを再生したいと考えています。

Symbian でこれを行う方法については、次のようなドキュメントがあることは知っています。 ここ そして ここ しかし、私はまだ立ち往生しています。

(重複投稿について事前にお詫びします:他の場所でも質問しましたが、成功しませんでした。)

役に立ちましたか?

解決

Qt 4 には、Phonon と呼ばれる一連のマルチメディア API が含まれており、これを使用するとまさにこれを行うことができます。これらは現在 Symbian 向けに実装されていますが、 Qt for S60「タワー」プレリリースSymbian 上の Phonon のサポートは含まれていませんが、Qt 4.6 には含まれています。

それまでの間、唯一の選択肢は、Symbian MMF API を直接使用することです。具体的には、ビデオ ウィジェット (またはそれが所有するオブジェクト) は、次のインスタンスを作成する必要があります。 CVideoPlayerUtility, したがって、実装する必要があります MVideoPlayerUtilityObserver. 。ビデオ プレーヤー API では、クライアントがビデオを表示するための RWindow を提供する必要があります。これは、呼び出しによって取得できます。 QWidget::winId(), を返します。 CCoeControl* ポインタ。したがって、次の呼び出しによってウィンドウ ハンドルを取得できます。

RWindow& window = *static_cast<RWindow*>(widget->winId()->DrawableWindow())

ただし、全体として、現在、Symbian 上で Qt アプリ (または実際には任意のアプリ) からビデオを再生するには、特にビデオ コンテンツの動的なサイズ変更や位置変更をサポートしたい場合には、かなりの作業が必要です。現在の Qt の Symbian 上での実装方法では、他のウィジェットを (部分的または完全に) ビデオ ウィジェットの上に移動すると正しく動作せず、ビデオは引き続き上に表示されることにも注意してください。これは、呼び出しが原因であるという事実によるものです。 QWidget::winId() 現在のところ、Qt はネイティブ Symbian ウィンドウを作成しませんが、4.6 で修正される予定です。

要約すると、急いでいない限り、数週間後にリリースされる 4.6 ベータ版を待ったほうがよいでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top