none
Persistance de l'application lorsque l'écran est éteint ou que le téléphone est en veille RRS feed

  • Discussion générale

  • Bonjour,

    Je réalise actuellement une application qui lit des webradios (via un flux mp3). L'application est terminée, néanmoins lorsque l'écran du téléphone est éteint (en appuyant sur la touche pour mettre en veille) ou que le téléphone se met en veille tout seul le player multimédia ne lit plus le flux (du moins le haut parleur est coupé)

    Comment faire en sorte que le son continue a être joué comme cela est le cas sur l'application Zune du téléphone ou sur d'autres applications qui lisent des webradios (avec la version 7.0)

     

    Merci d'avance de votre aide,
    Cordialement.

    lundi 25 juillet 2011 23:08

Toutes les réponses

  • Tu peux désactiver le mode veille grâce à l'évènement Obscured et la propriété PhoneApplicationService.ApplicationIdleDetectionMode.

    Dans le App.xaml.cs :

    1/ APRES le InitializeComponent, tu dois t'abonner à l'évènement Obscured sur ton objet RootFrame

    RootFrame.Obscured += new System.EventHandler<ObscuredEventArgs>(RootFrame_Obscured);
    


    2/ Ensuite, tu définis ton évènement RootFrame_Obscured et tu y désactives la veille :

    private void RootFrame_Obscured(object sender, ObscuredEventArgs e)
    {
          PhoneApplicationService.ApplicationIdleDetectionMode = UserIdleDetectionMode.Disabled;
    }


    Attention par contre à mettre dans ton application un mécanisme qui permet à l'utilisateur de désactiver ou pas le fait que tu forces la désactivation de la veille. ça fait partie des certifications pour ton application. A lire là http://msdn.microsoft.com/en-us/library/ff941090(v=vs.92).aspx + dans le guide de certifications.

    Bon courage (^__^)

     

     

     


    David POULIN, Expert .NET (WPF, Silverlight et Windows Phone) chez Soat
    mardi 26 juillet 2011 06:18
  • Pour avoir le même comportement que le lecteur Zune, il faudra attendre la version Mango de Windows Phone en utilisant les audio background agent :

     

    http://msdn.microsoft.com/en-us/library/hh202978(v=vs.92).aspx


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    mardi 26 juillet 2011 07:28
    Modérateur
  • Bonjour,

    Est-ce que vous avez testé la solution proposée ? Merci de partager avec nous les résultats,afin que d'autres personnes avec le même problème puissent profiter de cette solution.


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue.
    mardi 26 juillet 2011 20:10
  • Bonjour,

    Tout d'abord merci de vos réponses. De mon coté j'ai eu pas mal de trucs a faire ces derniers jours, je prendrai le temps de faire un test avec la solution proposée par dpoulin dans le courant de la journée (ou soirée ^^) je vous tiens au courant...

    mercredi 27 juillet 2011 08:53
  • Tu peux désactiver le mode veille grâce à l'évènement Obscured et la propriété PhoneApplicationService.ApplicationIdleDetectionMode.

    Dans le App.xaml.cs :

    1/ APRES le InitializeComponent, tu dois t'abonner à l'évènement Obscured sur ton objet RootFrame

     

    RootFrame.Obscured += new System.EventHandler<ObscuredEventArgs>(RootFrame_Obscured);
    

     


    2/ Ensuite, tu définis ton évènement RootFrame_Obscured et tu y désactives la veille :

     

    private void RootFrame_Obscured(object sender, ObscuredEventArgs e)
    {
       PhoneApplicationService.ApplicationIdleDetectionMode = UserIdleDetectionMode.Disabled;
    }

     


    Attention par contre à mettre dans ton application un mécanisme qui permet à l'utilisateur de désactiver ou pas le fait que tu forces la désactivation de la veille. ça fait partie des certifications pour ton application. A lire là http://msdn.microsoft.com/en-us/library/ff941090(v=vs.92).aspx + dans le guide de certifications.

    Bon courage (^__^)

     

     

     


    David POULIN, Expert .NET (WPF, Silverlight et Windows Phone) chez Soat


    Après de multiples essais je commence a devenir complètement dingue... Sur ma page XAML où il y a mon player multimédia je fais une checkbox "Empecher la mise en veille du terminal" a l'état unchecked par défaut et j'ai mis en place les méthodes suivantes mais cela ne marche pas :( 

        private void chkSleep_Checked(object sender, RoutedEventArgs e)
        {
           Microsoft.Phone.Shell.PhoneApplicationService.Current.UserIdleDetectionMode = Microsoft.Phone.Shell.IdleDetectionMode.Disabled;
        }
    
        private void chkSleep_Unchecked(object sender, RoutedEventArgs e)
        {
          Microsoft.Phone.Shell.PhoneApplicationService.Current.UserIdleDetectionMode = Microsoft.Phone.Shell.IdleDetectionMode.Enabled;
        }
    

    samedi 30 juillet 2011 09:48
  • Attention, UserIdleDectectionMode empeche la mise en veille automatique (comme si l'utilisateur touchait toujours l'écran), mais si tu appuies sur off ou que tu sors, ton application sera fermée.

     

    ApplicationIdleDetectionMode au contraire, n'empeche pas l'écran de lock, mais laisse l'application active en dessous. Encore une fois, si tu sors de l'application, ton appli sera totalement fermée.

     

    C'est tout ce qui est possible !


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    samedi 30 juillet 2011 11:36
    Modérateur