windows8-Metro ui:如何在后台模式下播放音频流



我正在实现音频播放器,当应用程序进入后台模式时,它应该能够播放实时PCM流。到目前为止,我尝试过的所有解决方案(XAudio2、IAudioClient2)在应用程序进入后台后立即停止播放。任何帮助都会得到通知。谢谢

我相信这应该是可能的。。它在WP7中,所以不明白为什么Win8是不可能的。快速搜索收益http://blogs.msdn.com/b/windowsappdev/archive/2012/05/16/being-productive-when-your-app-is-offscreen.aspx其具有到构建(yes Build)到背景音频的链接。

以下是WinRT c#示例的链接http://code.msdn.microsoft.com/windowsapps/Background-Audio-in-WinRT-344bcf4d

这里的另一个向您展示了将Media Element配置为进行背景音频是多么容易http://babaandthepigman.wordpress.com/2012/03/17/metro-background-audio-c-consumer-preview/

您需要使用具有AudioCategory=BackgroundCapable属性的MediaElement。它需要在XAML页面上实例化。

将此样式应用于根框架:

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

然后你可以播放这样的媒体:

var rootGrid = VisualTreeHelper.GetChild(Window.Current.Content, 0);    
var mediaElement = (MediaElement)VisualTreeHelper.GetChild(rootGrid, 0);
mediaElement.Source = new Uri("ms-appx:///relative/path/to/file.mp3");

然后,您需要在应用程序清单中声明您的应用程序能够提供背景音频。

我博客上的完整解释如下:http://rikk.it/2012/10/background-audio-in-a-metro-c-sharp-app/

最新更新