0

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

4

2 回答 2

0

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

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

另一个在这里向您展示了配置媒体元素来做背景音频是多么容易 http://babaandthepigman.wordpress.com/2012/03/17/metro-background-audio-c-consumer-preview/

于 2013-02-18T13:55:19.000 回答
0

您需要使用带有 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/

于 2013-02-18T14:46:50.627 回答