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

时间:2025-01-26 08:37:08

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