Ich habe einen Audio-Player, der BackgroundAudioPlayer
zusammen mit AudioPlayerAgent
verwendet. Alles funktioniert gut, außer dass es einen Anwendungsfall gibt, mit dem ich nicht umgehen kann.Reagieren auf UserAction in AudioPlayerAgent, wenn App angehalten wird
Wenn ich eine Audiospur in meiner Anwendung spiele und der Benutzer dann zu einer anderen Anwendung wechselt, wird die Audiospur weiterhin im Hintergrund abgespielt - aber ich vermute, dass meine Anwendung jetzt in den Speicher verschoben wurde und unterbrochen wurde.
Meine Frage ist: Wenn der Benutzer jetzt beginnt, Musik in einer anderen App abzuspielen, bekomme ich die Aktion AudioPlayerAgent.UserAction.Stop
als Rückruf an meine AudioAgent
. Aber kann ich jetzt aus der Sicht meiner App etwas dagegen tun? Ich meine, ich möchte die Position der Audiowiedergabe speichern, wo der Benutzer in meiner App war, aber meine App wurde gesperrt, oder?
Wenn meine App im Vordergrund ist und der Ton stoppt, erhalte ich das Ereignis BackgroundAudioPlayer.Instance.PlayerState.Stopped
. Hier speichere ich normalerweise die Position der Wiedergabe. Aber wenn der Benutzer zu einer anderen App wechselt, um Musik abzuspielen, bekomme ich dieses Ereignis nicht.
Also frage ich mich nur, wie man mit dieser Art von Fall umzugehen. Kann ich etwas tun, um die Benutzererfahrung zu verbessern?
der einzige Weg, diese Position zu isolierten Speicher in dem Agenten Code zu speichern ist zu kommunizieren – onmyway133
Nach dieser Frage zu schreiben, war ich auch an den isolierten Speicher denken. Ich war mir nicht sicher, ob das vom Agentencode aus erreichbar ist. Scheint es ist. Werde versuchen. Vielen Dank! –
@JohanPaul - Stellen Sie sicher, dass Sie ein ['Mutex'] (http://msdn.microsoft.com/en-us/library/system.threading.utex%28v=vs.95%29.aspx) beim Zugriff auf die isolierter Speicher, andernfalls könnten Ihre Forgorund-App und Ihr Hintergrundagent versuchen, gleichzeitig auf sie zuzugreifen. –