Windows 8 Metro用户界面:如何在后台模式下播放音频流

Windows 8 Metro用户界面:如何在后台模式下播放音频流,windows-8,Windows 8,我实施的音频播放器,将能够播放实时PCM流,而应用程序进入后台模式。所有的解决方案(XAudio2,IAudioClient2)到目前为止我已经尝试过了,一旦应用程序进入后台,就停止播放。 任何帮助都是值得的。谢谢。我相信这应该是可能的。。它在WP7中,所以不明白为什么Win8是不可能的。快速搜索产生一个链接到构建(是构建)到背景音频 这里有一个到WinRT c#示例的链接 这里的另一个例子向您展示了配置媒体元素来制作背景音频是多么容易 您需要使用具有AudioCategory=Backgrou

我实施的音频播放器,将能够播放实时PCM流,而应用程序进入后台模式。所有的解决方案(XAudio2,IAudioClient2)到目前为止我已经尝试过了,一旦应用程序进入后台,就停止播放。
任何帮助都是值得的。谢谢。

我相信这应该是可能的。。它在WP7中,所以不明白为什么Win8是不可能的。快速搜索产生一个链接到构建(是构建)到背景音频

这里有一个到WinRT c#示例的链接

这里的另一个例子向您展示了配置媒体元素来制作背景音频是多么容易

您需要使用具有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>
然后,您需要在应用程序清单中声明您的应用程序能够播放背景音频


在我的博客上有完整的解释:

我感谢你的建议,但我需要自己写。我已经使用SharpDX XAudio2(directx的包装器)编写了渲染器。有没有办法使用这些库在后台播放音频?因为我在应用程序中播放原始PCM音频。啊,我明白了。对于背景音频,您仍然需要使用MediaElement,但是可以使用MediaElement.SetSource()来代替上面的C#,它允许您分配RandomAccessStream而不是文件Uri。
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");