2012-04-09 17 views
4

私のアプリでは、2つのビデオ(それぞれ長さ15秒)を同時に再生する必要があります。また、あるビデオ(DoubleAnimation内)の不透明度を変更して別のビデオの上に表示する必要があります。 2つのビデオを再生することは、同期化のために必要です。2つのビデオを同時に再生する

MediaElementsを使ってビデオを再生しようとしましたが、ビデオを同時に再生できませんでした。私は不可能だと思う。私は正しい?

また、動画を450フレーム(毎秒30フレーム)に分割し、ObjectAnimationUsingKeyFrames(例:http://compiledexperience.com/windows-phone/tutorials/candle)を使用しましたが、この方法ではメモリが多すぎます(使用メモリは約250 MBですが、 90 MB)。

最後に、DispatcherTimerを使用しようとしましたが、Tickプロシージャで2つのイメージのソースプロパティを変更しましたが、十分に遅く動作します。

私に助けてください、遅れなしでこれを行う方法はありますか?

+1

答えはありませんが、動作しないのは、ページ上に1つの 'MediaElement'しか使用できないためです。可能であれば、すべてのアニメーションとエフェクトを含む1つのビデオを作成し、ループ上でそのビデオを使用するだけです。 – keyboardP

+0

私はビデオをユーザーの選択によって表示/消滅させる必要があります。だから、あるビデオが徐々に別のビデオに変わるとき、私はモーフィング効果の似顔絵を作りたい。しかし、開始の瞬間は、このエフェクトはユーザーによって定義されます(例えばタップイベント)。 – Lumen

+0

また、答えではなく、ちょうど提案...または実際には、なぜあなたはストリーム/キューのビデオファイルのための一時ファイルのセットを使用することができませんでしたあなたは "スプライス"となる正確なフレームを計算するそれらを別々の「スプライス」ファイルにレンダリングします。その後、vid_1part_1、splice_1、vid2part_1、splice_2、vid_1part_2、splice_3、vid_2part_2、splice_4 ...などを再生します。 –

答えて

0

別のオプションはCompositionTarget.Rendering を使用してみられる ここで説明するように:http://msdn.microsoft.com/en-us/library/ms748838.aspx

あなたに実行することが問題のコール間の時間が保証されていないので、あなたはフレームが速いか遅い実行し得ることです。

しかしCharles Petzoldには、レンダリングイベントが発生したときにいつも表示する正しいフレームを選ぶことができるように、経過時間を決定する方法を示す記事があります。サンプルコードは参考にしてください: http://www.charlespetzold.com/blog/2010/06/CompositionTarget-Rendering-and-RenderEventArgs.html

関連する問題