2017-01-13 3 views
1

Я добавил MediaPlayerElement к моему XAML следующим образом:MediaPlayerElement полноэкранный режим кнопка не скрывает панель навигации

<MediaPlayerElement x:Name="EmbeddedPlayer" AreTransportControlsEnabled="True" HorizontalAlignment="Stretch"> 
    <MediaPlayerElement.TransportControls> 
      <MediaTransportControls IsSkipBackwardButtonVisible="True" IsSkipBackwardEnabled="True" IsSkipForwardButtonVisible="True" IsSkipForwardEnabled="True"/> 
     </MediaPlayerElement.TransportControls> 
</MediaPlayerElement> 

Проблема заключается в том, что кнопка Fullscreen обеспечивается MediaTransportControls не скрывает панель навигации (область, содержащую заднюю , кнопки запуска и поиска) на телефоне, пока я ожидаю, как и в системе «Фильмы & TV». Он только скрывает строку состояния !? (Он работает на рабочем столе.)

Есть ли секретный код, позволяющий скрывать навигационную панель или просто невозможно использовать стороннее приложение? Я попробовал ApplicationView.TryEnterFullScreenMode в своем MainPage на Windows 10 Mobile 14393.693, но, как и выше, панель навигации не скрыта (только строка состояния).

ответ

0

После обнаружения мой ответ на another problem on casting video to TV, я узнал, что один не должны использовать рекомендованную MediaPlayerElement но устаревшее MediaElement для панели навигации, чтобы быть скрытым образом.

0

Приложение "Movie & TV" не скрывает навигационную панель по умолчанию. Причина, по которой вы видите, что она скрывает навигационную панель по умолчанию, заключается в том, что плеер по умолчанию находится в полной модели окна. Двойной поступок игрока «Movie & TV», игрок выйдет из режима полного окна и отобразит панель.

Так что, если вы хотите иметь такие же эффекты, как «Movie & ТВ» приложение, вам нужно установить IsFullWindow свойство из MediaPlayerElement нравится следующим образом:

<MediaPlayerElement x:Name="EmbeddedPlayer" AreTransportControlsEnabled="True" HorizontalAlignment="Stretch" IsDoubleTapEnabled="True" IsFullWindow="True" > 
    <MediaPlayerElement.TransportControls> 
     <MediaTransportControls /> 
    </MediaPlayerElement.TransportControls> 
</MediaPlayerElement> 

Также вы можете определить DoubleTapped событие для MediaPlayerElement, что вдвое нажмите, чтобы выйти из режима полного окна. Код выглядит следующим образом, и теперь он имеет такие же эффекты, как и «Movie & TV».

public MainPage() 
{ 
    this.InitializeComponent(); 
    EmbeddedPlayer.Source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/New2.mp4")); 
    EmbeddedPlayer.DoubleTapped += EmbeddedPlayer_DoubleTapped; 
} 

private void EmbeddedPlayer_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e) 
{ 
    var view = ApplicationView.GetForCurrentView(); 

    if (view.IsFullScreenMode) 
     view.ExitFullScreenMode(); 
    else 
     view.TryEnterFullScreenMode(); 
} 
+0

Ну, вопрос не касался скрытия панели навигации по умолчанию. Я хочу, чтобы приложение отображалось нормально (с помощью командной строки и т. Д.), Но когда пользователь нажимает кнопку «Полноэкранный режим» на «MediaPlayerElement», строка состояния и панель навигации должны быть скрыты. Это ожидаемое поведение. Но я думаю, что такая проблема никогда не будет исправлена. Ответ может потребовать некоторой комбинации таких методов, как 'SetDesiredBoundsMode',' SuppressSystemOverlays', но их слишком много, чтобы опробовать. –

+0

Кстати, я думаю, что рекомендуемым способом полноэкранного воспроизведения для медиаплеера является использование свойства 'IsFullWindows' вместо того, чтобы делать' TryEnterFullScreenMode'. Таким образом, другие компоненты пользовательского интерфейса также будут скрыты. –

+0

Конечно, я сделал, и это не сработало. Добавление 'IsFullWindow =" true "' помещает медиаплеер в полный экран, скрывая строку состояния, но панель навигации все еще присутствует, и она закрывает часть воспроизводимого видео. Я также замечаю, что это то же самое для приложения «Фильмы и ТВ», когда видео приостановлено: панель навигации скрыта только при воспроизведении видео. –

Смежные вопросы