Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

[WP7 Tips] Parar la música al partir si tu app reproduce media

Bueno, no sabía como llamarle al post, pero es simplemente eso, subí una aplicación al market y fue rechazada, el problema? es que se me debía dar la opción de parar la reproducción de media en el caso que se esté reproduciendo algo, mi app utiliza la reproducción de sonido mediante Microsoft.Xna.Framework.Media, entonces,  en pocas palabras, es requisito que manejemos la reproducción de audio en nuestras apps que también lo ocupan.

Entonces, lo que se puede hacer es consultar si es que se está reproduciendo media y si es así parar la reproducción de media, esto lo voy a hacer en el siguiente código:

public main()

{

   InitializeComponent();

    if (Microsoft.Xna.Framework.Media.MediaPlayer.State ==  Microsoft.Xna.Framework.Media.MediaState.Playing)

  {

     if (MessageBox.Show("Actualmente se esta reprouciendo Media, Desea pausar la reproducción? Haga Click en  \"Aceptar\" para pausar la reproducción en curso, \"Cancelar\" para seguir reproduciendo la música y continuar en Dead Dedo", "Reproducción de Media", MessageBoxButton.OKCancel) == MessageBoxResult.OK)

  {

   try

     {

        FrameworkDispatcher.Update();

        Microsoft.Xna.Framework.Media. MediaPlayer.Pause();

     }catch (Exception ex)

     {

        MessageBox.Show(ex.Message);

     }

   }

    else

      {

        App.Current.EnabledSound = false; 

      }

   }

}

Como vez inicialmente se consulta por que estado del mediaplayer, si esta reproduciendo, consultamos al usuario si es que desea pausar la música y seguir con la aplicación, en otro caso, se continuará con la reproducción de media y voy a parar el sonido de mi aplicación con el App.Current.EnabledSound=false, la cual no es nada más que una propiedad en el App.xaml.cs. Para acceder de manera más sencilla ocupo el siguiente código:

public static new App Current

{

    get { return Application.Current as App; }

}

 

public Boolean EnabledSound { get; set; }

Ahora antes de ejecutar un sonido , siempre consulto sobre el estado de la variable. Sin embargo en en algunos casos tenía atachado mediante código XAML el sonido a cierto comportamiento , como por ejemplo los botones:

 

<i:EventTrigger x:Name="trigger1"  EventName="Click"> 
    <eim:PlaySoundAction Volume="1" x:Name="lazer1" Souce="/sound/laser.mp3" />
</i:EventTrigger>

 

Le agregué al EventTrigger un nombre (x:Name) para que sea accesible fácilmente desde el código y poder deatacharlo:

 

if (!App.Current.EnabledSound)

{

     trigger1.Detach();

}

Bueno, luego de arreglar mi problema de esta manera, la aplicación fue aprobada Sonrisa

Espero que este tip te sea útil.

Saludos!

Posted: 7/5/2012 0:07 por Gonzalo Perez | con no comments
Archivado en:
Comparte este post: