【问题标题】:playing two videos simultaneously同时播放两个视频
【发布时间】:2012-04-09 12:48:43
【问题描述】:

我需要在我的应用中同时循环播放两个视频(每个视频长度为 15 秒)。有时我需要更改一个视频的不透明度(在 DoubleAnimation 中),让它出现在另一个视频上方。播放两个视频需要同步。

我尝试使用 MediaElements 播放视频,但我无法让它们同时播放视频。我认为这是不可能的。我说的对吗?

我还尝试将我的视频分成 450 帧(每秒 30 帧)并使用 ObjectAnimationUsingKeyFrames,(例如:http://compiledexperience.com/windows-phone/tutorials/candle),但是这种方式使用的内存太多(使用的内存约为 250 MB,虽然最大使用量必须为 90 MB)。

最后我尝试使用 DispatcherTimer 并在它的 Tick 程序中更改两个图像的源属性,但它的运行速度很慢。

请帮帮我,有什么方法可以做到这一点没有延迟?

【问题讨论】:

  • 不是一个答案,但它不起作用的原因是你只能在一个页面上使用一个MediaElement。如果可能的话,您可以只创建一个包含所有动画和效果的视频,然后循环使用该视频。
  • 我需要让用户选择让视频出现/消失。所以,当一个视频逐渐变成另一个视频时,我想创造一种变形效果的相似性。但是这个效果的开始时刻是由用户定义的(例如点击事件)。
  • 也不是一个答案,而只是一个建议......或者一个想法,你为什么不能使用一组临时文件作为流/提示视频文件,你可以在其中计算确切的帧这将被“拼接”并将它们呈现为单独的“拼接”文件。然后你播放 vid_1part_1, splice_1, vid2part_1, splice_2, vid_1part_2, splice_3, vid_2part_2, splice_4 ...等。

标签: windows-phone-7 mediaelement


【解决方案1】:

另一种选择是尝试使用 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

【讨论】:

    猜你喜欢
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2015-01-19
    相关资源
    最近更新 更多