每次从 UI 线程执行MediaPlayer.Play()
时,UI 都会冻结很长时间。我认为您对开始播放 SongCollection 所需的时间无能为力,但至少 UI 应该保持响应。从另一个线程运行MediaPlayer.Play()
显然不起作用。
媒体播放器是来自 Xna 命名空间的组件。如果您在游戏中使用此功能,您肯定会运行游戏循环来防止这种冻结发生:游戏循环
如果在应用中使用此组件,则可以自行模拟此行为
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)