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