在开发视频app的时候,全屏播放一段时间内没有电脑操作,电脑会自动进入睡眠模式,这时就要多写些代码来保持响应了。
(这里使用的是MediaElement播放控件,MediaElement需要手动添加代码来实现)
官方文档链接:https://docs.microsoft.com/zh-cn/uwp/api/Windows.UI.Xaml.Controls.MediaElement
// Create this variable at a global scope. Set it to null. private DisplayRequest appDisplayRequest = null; private void MediaElement_CurrentStateChanged(object sender, RoutedEventArgs e) { MediaElement mediaElement = sender as MediaElement; if (mediaElement != null && mediaElement.IsAudioOnly == false) { if (mediaElement.CurrentState == Windows.UI.Xaml.Media.MediaElementState.Playing) { if (appDisplayRequest == null) { // This call creates an instance of the DisplayRequest object. appDisplayRequest = new DisplayRequest(); appDisplayRequest.RequestActive(); } } else // CurrentState is Buffering, Closed, Opening, Paused, or Stopped. { if (appDisplayRequest != null) { // Deactivate the display request and set the var to null. appDisplayRequest.RequestRelease(); appDisplayRequest = null; } } } }
从播放页返回到上一页后,可以在page.unload();中停止激活请求。不然,在应用打开状态下,即使没有用户操作,设备也不会自动熄屏了。
if (appDisplayRequest != null) { // Deactivate the display request and set the var to null. appDisplayRequest.RequestRelease(); appDisplayRequest = null; }