Peter Daukintis
Some changes occurred in the consumer preview release of Windows 8 regarding background audio; the steps required to get it working are outlined in this forum post
The steps are
- Create a MediaElement and set it’s AudioCategory property to ‘BackgroundCapableMedia’
<MediaElement x:Name="myMedia"
Source="/Assets/Sleep Away.mp3"
AudioCategory="BackgroundCapableMedia"/> - Update the app manifest to declare Background Tasks of types ‘Audio’ and ‘Control Channel’
- Implement event handlers for
- MediaControl.PlayPressed
- MediaControl.PausePressed
- MediaControl.PlayPauseTogglePressed
- MediaControl.StopPressed
{
this.InitializeComponent();
MediaControl.PlayPressed += MediaControl_PlayPressed;
MediaControl.PausePressed += MediaControl_PausePressed;
MediaControl.PlayPauseTogglePressed += MediaControl_PlayPauseTogglePressed;
MediaControl.StopPressed += MediaControl_StopPressed;
}
private void MediaControl_StopPressed(object sender, object e)
{
myMedia.Stop();
}
private void MediaControl_PlayPauseTogglePressed(object sender, object e)
{
}
private void MediaControl_PausePressed(object sender, object e)
{
myMedia.Pause();
}
private void MediaControl_PlayPressed(object sender, object e)
{
myMedia.Play();
}
The media transport event handlers which need to be implemented are detailed here http://msdn.microsoft.com/en-us/library/windows/hardware/hh833781.aspx
Here’s a working sample project.
UPDATE: I have updated this for the Release Preview (see http://babaandthepigman.wordpress.com/2012/08/12/metro-background-audio-c-release-preview/)