可视化树中的媒体元素不会在 8.1 应用商店应用中仅显示音频视频
本文关键字:应用 音频视频 显示 媒体 元素 可视化 | 更新日期: 2023-09-27 18:32:16
我有一个视频要在 8.1 Windows 应用商店应用程序中播放,并希望在导航到其他页面后继续播放音频.. 我使用 visualTreeHelper 做到了,所以我在 app.xaml 中声明了一个媒体元素并将其添加到 app.xaml 中的帧.cs ,然后在播放页面中获取它。问题是媒体元素控件只播放音频,我看不到视频..导航后音频继续播放,但在播放页面看不到视频(只有音频):这就是我在 Standardstyles.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>
这在应用程序.xaml 中.cs
rootFrame.Style = Resources["RootFrameStyle"] as Style;
在播放Page.xaml时,我添加了MediaElement Control:
<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;
`
当我在导航后不尝试让音频工作时,一切正常,所以当我不使用可视化树助手时,但在这种情况下音频按预期工作,但在播放页面中看不到视频(仅音频)
无需导航整个页面,您只需导航缅因州页面中的框架即可。这样,您的媒体元素就可以在所有页面上访问。
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<MediaElement Grid.Row="0"/>
<Frame x:Name="displayedFrame" Grid.Row="1"></Frame>
</Grid>
每当您必须导航而不是使用它时。框架.导航 使用显示的框架.导航