1

パネルに多くのコントロールがあり、それぞれに独自のMediaElement再生ビデオがあるアプリケーションがあります。小さいビューポートでこれらのコントロールの多くをスクロールするときのパフォーマンスを向上させるために、Silverlight3の新しいUI仮想化機能を調べています。

私の経験から、MediaElementコントロールが削除されてからビジュアルツリーに再度追加されるたびに、メディアを再バッファリングする必要があることを理解しています。MediaElementコントロールで満たされたあらゆる種類のカスタムパネルにUI仮想化を実装しようとすると、画面外の要素の再生が停止し、画面にスクロールされるとすぐに再生する前に再バッファリングされると思います。誰かがこの状況で何か経験がありますか?

この場合、進行中の再生に影響を与えることなく、MediaElementsを含むコントロールを使用してUI仮想化を実装するための回避策または可能な方法はありますか?

4

1 に答える 1

2

この問題に対する優れた解決策はないと思います。コントロールを一時的に削除してから、ビジュアル ツリーの新しい場所に再度追加する必要があったため、ドラッグ アンド ドロップを実装するのと同じ再バッファリングの問題に直面し、MediaElement がリバッファ。

他の誰かがこの問題を抱えている場合、私の最善の回避策は、実際のコントロールで VideoBrush を使用し、対応するすべての MediaElements をアプリケーション レベルの非表示のパネルに追加することです。コントロールがビジュアル ツリーから一時的に離れた場合 (UI 仮想化またはドラッグ アンド ドロップにより)、VideoBrush のみが削除され、実際の MediaElement は非表示のパネルにとどまるため、再バッファリングは発生しません。

于 2010-03-17T19:50:50.520 に答える