我正在实现应用程序进入后台模式时应该能够播放实时PCM流的音频播放器。到目前为止我尝试过的所有解决方案(XAudio2,IAudioClient2)都会在app进入后台后立即停止播放。 任何帮助都是适当的。感谢。
答案 0 :(得分:0)
我相信这应该是可能的......它在WP7中,所以不要理解为什么Win8是不可能的。快速搜索产生http://blogs.msdn.com/b/windowsappdev/archive/2012/05/16/being-productive-when-your-app-is-offscreen.aspx,其中包含指向背景音频的构建(是构建)的链接。
这是指WinRT c#sample 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/
答案 1 :(得分:0)
您需要将MediaElement与AudioCategory = BackgroundCapable属性一起使用。它需要在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/