2012-03-05 1 views
2

В Windows8 Developer Preview мы можем использовать этот код для воспроизведения аудио в фоновом режиме:Воспроизведение аудио в фоновом режиме, используйте BackgroundCapableMedia

mediaElement.AudioCategory = AudioCategory.Media; 

В perview Windows8 клиента, кажется, что мы должны использовать AudioCategory.BackgroundCapableMedia вместо AudioCategory.Media

mediaElement.AudioCategory=AudioCategory.BackgroundCapableMedia; 

и я также Объявите фоновую задачу в appxmanifest

<Extension Category="windows.backgroundTasks" EntryPoint="TestApp.App"> 
     <BackgroundTasks> 
      <Task Type="audio" /> 
     </BackgroundTasks> 
</Extension> 

, но это не сработало для меня, и MediaElement выкинет исключение «MF_MEDIA_ENGINE_ERR_SRC_NOT_SUPPORTED» в MediaFailed EventHandler Как мне это сделать?

ответ

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- ВОК/28250692 # 28250692). – kiewic