2012-03-05 179 views
2

在Windows8的开发者预览版,我们可以利用这个代码在后台播放音频:播放音频使用BackgroundCapableMedia

mediaElement.AudioCategory = AudioCategory.Media; 

在Windows8的客户perview,似乎我们应该使用,而不是AudioCategory.BackgroundCapableMedia AudioCategory.Media

mediaElement.AudioCategory=AudioCategory.BackgroundCapableMedia; 

,我在appxmanifest

<Extension Category="windows.backgroundTasks" EntryPoint="TestApp.App"> 
     <BackgroundTasks> 
      <Task Type="audio" /> 
     </BackgroundTasks> 
</Extension> 
还声明后台任务210

,但它并没有为我工作和MediaElement的将抛出一个“MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED“例外的MediaFailed事件处理 我应该怎么办?

回答

3

您还需要设置这些事件处理程序:

MediaControl.PlayPressed += MediaControl_PlayPressed; 
MediaControl.PausePressed += MediaControl_PausePressed; 
MediaControl.PlayPauseTogglePressed += MediaControl_PlayPauseTogglePressed; 
MediaControl.StopPressed += MediaControl_StopPressed; 

-

void MediaControl_StopPressed(object sender, object e) 
{ 
    myMediaPlayer.Stop(); 
} 

void MediaControl_PlayPauseTogglePressed(object sender, object e) 
{ 
} 

void MediaControl_PausePressed(object sender, object e) 
{ 
    myMediaPlayer.Pause(); 
} 

void MediaControl_PlayPressed(object sender, object e) 
{ 
    myMediaPlayer.Play(); 
} 

我认为,应该有它的工作。

+0

对于Windows 8.1及更高版本,请使用'SystemMediaTransportControls',参见[这里](http://stackoverflow.com/questions/28249916/how-to-switch-from-mediaelement-to-backgroundmediaplayer-on-application-lose- FOC/28250692#28250692)。 – kiewic 2015-09-19 21:25:02