【问题标题】:Silverlight MediaElement and UI VirtualizationSilverlight MediaElement 和 UI 虚拟化
【发布时间】:2009-10-08 16:20:05
【问题描述】:

我有一个应用程序,它在面板上包含许多控件,每个控件都有自己的 MediaElement 播放视频。我一直在研究 Silverlight 3 的新 UI 虚拟化功能,以提高在较小的视口中滚动浏览其中许多控件时的性能。

根据我的经验,我的理解是,任何时候 MediaElement 控件被删除然后重新添加到可视化树中时,媒体都必须重新缓冲。我猜想尝试在填充有 MediaElement 控件的任何类型的自定义面板上实现 UI 虚拟化会导致任何屏幕外元素停止播放,然后在它们滚动到屏幕上后立即重新缓冲。有没有人遇到过这种情况?

如果是这种情况,是否有任何解决方法或可能的方法来使用包含 MediaElement 的控件实现 UI 虚拟化,而不影响正在进行的播放?

【问题讨论】:

    标签: c# silverlight mediaelement buffering ui-virtualization


    【解决方案1】:

    我认为这个问题没有什么好的解决方案,我在实现拖放时遇到了同样的重新缓冲问题,因为必须暂时删除控件,然后在可视树的新位置重新添加,导致要重新缓冲的 MediaElement。

    如果其他人有这个问题,我最好的解决方法是在实际控件上使用 VideoBrush,并将所有相应的 MediaElements 添加到应用程序级别的隐藏面板中。如果控件暂时离开可视化树(由于 UI 虚拟化或拖放),则仅移除 VideoBrush 并且实际的 MediaElement 停留在隐藏面板上,因此不会发生重新缓冲。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多