У меня есть видео для воспроизведения в приложении Windows Store 8.1, и я хочу, чтобы звук воспроизводился после перехода на другую страницу. Я сделал это с помощью visualTreeHelper, поэтому я объявляю медиа-элемент в app.xaml и добавляю его в фрейм в app.xaml.cs , и получить его в playPage . Проблема в том, что элемент управления медиа-элементом воспроизводит только звук, и я не вижу видео... звук продолжает воспроизводиться после навигации, но не может видеть видео на воспроизводимой странице (только звук): вот что я вставил стандартные стили.xaml:
<Style x:Key="RootFrameStyle" TargetType="Frame">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Frame">
<Grid>
<MediaElement x:Name="player" AudioCategory="BackgroundCapableMedia" />
<Grid>
<ContentPresenter />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
и это в app.xaml.cs
rootFrame.Style = Resources["RootFrameStyle"] as Style;
в playPage.xaml я добавляю элемент управления MediaElement:
<ContentControl x:Name="videoContainer" HorizontalAlignment="Stretch" VerticalAlignment="Center"
Grid.Row="0" Grid.Column="1"
KeyUp="VideoContainer_KeyUp" >
<MediaElement x:Name="player" AudioCategory="BackgroundCapableMedia"
Visibility="Visible" Grid.Row="0" Grid.Column="1" AutoPlay="True"
HorizontalAlignment="Center" VerticalAlignment="Center"
MediaOpened="player_Opened"
MediaEnded="player_Ended"
MediaFailed="player_Failed"
Position="10"
CurrentStateChanged="player_CurrentStateChanged" />
</ContentControl>
и в его коде позади:
DependencyObject rootGrid = VisualTreeHelper.GetChild(Window.Current.Content, 0);
player = (MediaElement)VisualTreeHelper.GetChild(rootGrid, 0) as MediaElement;
player.Source = video.VideoLink;
`
все работает хорошо, когда я не пытаюсь заставить звук работать после навигации, поэтому, когда я не использую помощник визуального дерева, но в этой ситуации звук работает, как и ожидалось, но не вижу видео на воспроизводимой странице (только аудио)