MediaPlayer.Play()会导致UI冻结

时间:2014-04-07 01:30:36

标签: windows-phone-7 user-interface windows-phone-8 xna freeze

每次从UI线程执行MediaPlayer.Play()时,UI都会冻结很长时间。我不认为你可以做任何关于开始播放SongCollection的时间,但至少UI应该保持响应。 从另一个线程运行MediaPlayer.Play()显然不起作用。

1 个答案:

答案 0 :(得分:1)

MediaPlayer是Xna命名空间中的一个组件。如果您在游戏中使用此功能,您最需要运行GameLoop以防止此冻结:GameLoop

如果您在应用中使用此组件,则可以模拟此行为

public MainPage()
    {    InitializeComponent();
         // Timer to simulate the XNA Game Studio game loop (Microphone is from XNA Game Studio)
         DispatcherTimer dt = new DispatcherTimer();
         dt.Interval = TimeSpan.FromMilliseconds(33);
         dt.Tick += delegate { try { FrameworkDispatcher.Update(); } catch { } };
         dt.Start();
}

(请参阅有关如何在游戏循环之外运行麦克风的完整示例:msdn