1

私は、特に再生機能を活用して、メディア コンポーネントを使用する MVVM C#​​ Metro アプリケーションに取り組んでいます。

通常、プロパティをバインドするように見えますが、などの呼び出しを行う必要がありますMediaElement.Play(source);。これまでに思いついた最善の解決策は、コード ビハインドによって処理されるビュー モデルからイベントを発生させることです。

これは実際にベストプラクティスですか、それともより洗練されたアプローチがありますか?

4

2 に答える 2

0

私は一度、MVVM の方法を使用して WPF でメディア プレーヤーを実行しようとしましたが、私の経験から感じたのは、MVVM の方法でそれを実行するのは本当に苦痛になるということです。常に MVVM に固執するよりも複雑でなく高速である場合は、コード ビハインドを作成することをお勧めします。後で、いくつかの依存関係プロパティを使用してユーザー コントロールとして分離し、見た目をきれいにすることができます。とにかく、メディアの再生に関して、「また」できることは、ビューモデルにメディアプレーヤー(Media Player)を保持し、そのメディアプレーヤーを指すビデオブラシを作成し、それを使用してビデオをビューに表示することです。描画ブラシを設定した四角形またはその他の要素を使用できます。メディア プレーヤーはビューモデルであるため、再生、停止、シークなどを行うことができます。

このようなもの、

        var player = new MediaPlayer();
        var myVideo = new VideoDrawing { Rect = new Rect(0, 0, 1, 1), Player = player  };
        var dBrush = new DrawingBrush(myVideo);

        // Use drawing brush to fill a rectangle

        rectangle.Fill = dBrush;
于 2012-07-27T09:43:08.017 に答える
0

MSDNより効率的な方法でこれを行うのに役立つ一連の記事があります。

注:これらはまだ .Net 4 の例ですが、すべての拡張機能を備えた Windows 8 で実行するのに多くの労力は必要ないと確信しています。

于 2012-07-23T16:26:08.690 に答える