uwp,c#,全屏播放保持屏幕响应

在开发视频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;
  }

 

 

posted @ 2019-10-28 15:46  singhwong  阅读(198)  评论(0编辑  收藏  举报