2012-04-09 26 views
4

Ich muss zyklisch zwei Videos spielen (jeweils 15 Sekunden Länge) gleichzeitig in meiner app. Und von Zeit zu Zeit muss ich die Opazität eines Videos (in DoubleAnimation) ändern, damit es über einem anderen Video erscheint. Das Abspielen von zwei Videos muss synchronisiert werden.spielen zwei Videos gleichzeitig

Ich versuchte MediaElements zu verwenden, um Video zu spielen, aber ich kann sie gleichzeitig das Video nicht bekommen zu spielen. Ich denke, es ist unmöglich. Habe ich recht?

Auch habe ich versucht, meine Videos in 450 Frames (30 Frames pro Sekunde) zu teilen und ObjectAnimationUsingKeyFrames verwenden, (Beispiel: http://compiledexperience.com/windows-phone/tutorials/candle), aber auf diese Weise verwendet zu viel Speicher (Arbeitsspeicher ist etwa 250 MB, obwohl die maximale Nutzung muss 90 MB sein).

Endlich habe ich versucht, DispatcherTimer zu bedienen und in seinem Tick vor, um die Quelleigenschaften von zwei Bildern ändern, aber es funktioniert langsam genug.

Helfen Sie mir bitte, gibt es eine Möglichkeit, dies ohne Lags zu tun?

+1

Keine Antwort, aber der Grund, warum es nicht funktioniert, ist, weil Sie nur ein 'MediaElement' auf einer Seite verwenden können. Wenn möglich, könntest du einfach ein Video erstellen, das alle Animationen und Effekte enthält und einfach dieses Video in Schleife verwenden. – keyboardP

+0

Ich muss Video nach Wahl des Benutzers erscheinen/verschwinden lassen. Ich möchte also einen Morphing-Effekt erzeugen, wenn sich ein Video allmählich in ein anderes verwandelt. Aber Moment des Starts dieser Effekt wird vom Benutzer definiert (zum Beispiel Tap-Ereignis). – Lumen

+0

auch keine Antwort, aber nur ein Vorschlag ... oder ein Gedanke wirklich, warum konnten Sie nicht eine Reihe von temporären Dateien für eine Stream/Cue-Videodatei verwenden, in denen Sie die genauen Frames berechnen würde, die "gespleißt" werden und Rendere sie in separate "Spleiß" -Dateien. Dann spielst du vid_1part_1, splice_1, vid2part_1, splice_2, vid_1part_2, splice_3, vid_2part_2, splice_4 ... usw. –

Antwort

0

wäre eine weitere Option versuchen mit CompositionTarget.Rendering wie hier beschrieben: http://msdn.microsoft.com/en-us/library/ms748838.aspx

Das Problem, das Sie ist ausführen kann in, dass die Zeit zwischen den Anrufen nicht garantiert und so können Sie Frames schneller oder langsamer laufen bekommen .

Allerdings hat Charles Petzold einen Beitrag zeigt, wie die Zeit in einer Art und Weise abgelaufen, um zu bestimmen, dass Sie den richtigen Rahmen zu holen erlauben würde, angezeigt werden, wenn das Rendering Ereignis eintritt. Der Beispielcode sollte hilfreich sein: http://www.charlespetzold.com/blog/2010/06/CompositionTarget-Rendering-and-RenderEventArgs.html

Verwandte Themen