Je crée une application UWP dans laquelle j'exécute l'arrière-plan audio dans MainPage sur un événement Click Button. Lorsque je passe à une autre page, il y a également un média différent à lire dans la tâche d'arrière-plan audio. Comment puis-je arrêter la tâche en cours pour exécuter l'autre? Devrais-je définir quelque chose globalement? Toute aide concernant ce problème?Exécution de l'arrière-plan audio dans différentes pages de l'application UWP
Modifier
J'utilise cet exemple: https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/BackgroundAudio Alors que le backgroundAudio de la première page est en cours d'exécution, je vais à la deuxième page et un événement click je mis une nouvelle liste avec le code suivant:
// First update the persisted start track
ApplicationSettingsHelper.SaveSettingsValue(ApplicationSettingsConstants.TrackId, RadioFacade.mySongs[0].MediaUri.ToString()); //here
ApplicationSettingsHelper.SaveSettingsValue(ApplicationSettingsConstants.Position, new TimeSpan().ToString());
// Start task
StartBackgroundAudioTask();
Mais la nouvelle chanson prend plus le temps estimé pour courir et entrer dans l'autre de cette méthode:
private void StartBackgroundAudioTask()
{
AddMediaPlayerEventHandlers();
var startResult = this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
bool result = backgroundAudioTaskStarted.WaitOne(10000);
//Send message to initiate playback
if (result == true)
{
MessageService.SendMessageToBackground(new UpdatePlaylistMessage(RadioFacade.mySongs));
MessageService.SendMessageToBackground(new StartPlaybackMessage());
}
else
{
throw new Exception("Background Audio Task didn't start in expected time");
}
});
startResult.Completed = new AsyncActionCompletedHandler(BackgroundTaskInitializationCompleted);
}
et la vieille chanson (première lecture) continue à jouer.
J'ai essayé d'arrêter le BackgroundMediaPlayer actuel en utilisant BackgroundMediaPLayer.Shutdown()
mais cela n'a pas fonctionné.
Une idée de comment laisser l'ancienne chanson s'arrêter et la chanson en cours de lecture?
Avez-vous essayé BackgroundMediaPlayer.Current.Pause() à la place? – H77