我正在实现音频播放器,当应用程序进入后台模式时,它应该能够播放实时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/