在Windows Phone 8.1应用程序中使用MediaElement

时间:2014-09-08 02:11:39

标签: windows-phone windows-phone-8.1 screen-orientation mediaelement

我正在开发一个使用 MediaElement 控件播放视频的Windows Phone 8.1 应用。我遇到了一些我无法找到信息的问题。我在这里上传了一个示例应用:https://mega.co.nz/#!s9sFiQDK!JDI9ar8qWqWIZ_Ot-Q8K8X0qfQ5YG7ATLAiHypOs5Ow

  1. 如果单击默认页面中的按钮,应用程序将导航到包含MediaElement的第二个页面以播放视频。我的应用仅配置为Portrait,但我希望视频显示在Landscape中。为此,我在点击按钮时更改了屏幕方向,然后在使用以下行导航到视频页面之前:Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences = Windows.Graphics.Display.DisplayOrientations.Landscape;这个问题是我可以在应用程序中看到方向更改时的外观丑陋。如何在不改变屏幕方向的情况下使视频显示在横向上?我在Facebook应用程序中看到,当视频打开时,应用程序确实导航到另一个页面(或者至少从我看到的过渡动画看起来如此)但是即使视频打开并在景观中播放,也没有屏幕旋转。

  2. 我想在显示带有视频的页面之前隐藏StatusBar。我把这行statusBar.HideAsync();放在了不同的地方,但无论如何,当视频已经可见并播放时,我总是看到StatusBar仍在隐藏。同样,Facebook应用程序会在视频显示在屏幕之前隐藏StatusBar。

  3. 播放视频时,如果按住后部硬件按钮,应用程序将最小化。现在,如果我点击它的屏幕截图返回它,应用程序就会出现在前台,但视频不再播放了。如果我点击视频来查看视频控件,我可以看到视频进度线正在移动,但视频就像是冻结了。如果我暂停视频并再次播放,视频将恢复播放。如何在应用程序到达前台时让视频继续播放?在Facebook应用程序中,当我这样做时,应用程序到了前台,但视频页面关闭,应用程序将我带到时间线页面。这是唯一的方法吗?如果是这样,我如何检测到当应用程序到达前台时有一个视频播放,所以我可以关闭页面并导航到上一页。

1 个答案:

答案 0 :(得分:0)

  1. 如果您始终希望视频页面处于横向模式,则可以拨打电话 Windows.Graphics.Display.DisplayInformation.AutoRotationPreferences = Windows.Graphics.Display.DisplayOrientations.Landscape; 在页面构造函数中,在InitializeComponent();

  2. 之后
  3. 呼叫 StatusBar.GetForCurrentView()HideAsync(); 在主页面构造函数中工作正常。

  4. 我仍然遇到同样的问题,我尝试了不同的方法,但我甚至无法获得App.Resuming事件(不幸的是在Windows Phone 8.1 WinRT OnNavigatedTo不会在应用程序恢复时触发)。