2016-07-12 36 views
0

我正在制作简单的音频播放器。到目前为止,我使用的是BackgroundMediaPlayer,但当背景音频任务添加到应用程序清单时,它似乎不起作用。 MediaElement的作品,但需要添加到屏幕的XAML树。我的应用程序有多个屏幕,这是我的问题。有没有办法使用MediaElement而不将其绑定到任何屏幕或以任何方式在多个屏幕上使用它?C#UWP One MediaElement多屏幕

谢谢!

回答

0

由于MediaElement被设计为支持音频和视频它需要被附连到UI所以它实际上可以显示视频和媒体控制元件。

如果你正在寻找的是在播放音频,无需用户交互(音量控制,播放,暂停,下一个等),也许你可以看看其他类如AudioGraph。您还可以找到样品here

+0

谢谢...所以UWP没有其他选择,**会**允许播放控制? – CryoCZ

+0

不是我所知道的。但是,既然你想在不同的页面/窗口,它不能有一个用户界面,如果你想无缝播放的权利? – AlexDrenea

0

我在没有背景音频的Windows 8.1中遇到过这个问题。我通过将MediaElement放置到应用程序框架来解决此问题。

我创建了一个框架式的

<Style x:Key="RootFrameStyle" TargetType="Frame"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Frame"> 
       <Grid Background="#F3F2F2"> 
        <MediaElement x:Name="MediaPlayer" 
            AudioCategory="BackgroundCapableMedia" 
            AutoPlay="True" /> 
        <ContentPresenter /> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

和应用程序启动时分配给该帧。我可以通过

DependencyObject rootGrid = VisualTreeHelper.GetChild(Window.Current.Content, 0); 
_player = (MediaElement)VisualTreeHelper.GetChild(rootGrid, 0);