Technology Experience
.NET World

Occhio se usate il MediaElement nelle vostre app wp7

Seguendo le ultime specifiche per la pubblicazione delle vostre app per Windows Phone 7 – disponibili a questo url – si legge una cosa molto importante. Il succo è questo:

se l’utente sta ascoltando qualcosa attraverso il lettore multimediale del telefono (quindi podcast o qualche canzone), l’avvio della vostra app NON deve MAI interrompere questo stream audio (sezione 6.5.1)

In cosa si traduce tutto ciò? In una bella rottura di scatole, perchè nel momento stesso in cui definite uno XAML come questo:

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <MediaElement Visibility="Collapsed" x:Name="MediaPlayer" />
</Grid>

 

allora tutto bene, ma se lo XAML diventa questo:

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <MediaElement Visibility="Collapsed" x:Name="MediaPlayer" Source="Start.mp3" />
</Grid>

 

l’eventuale stream audio dell’utente, l’mp3 o il podcast che dir si voglia, si interrompe e siete fregati. La vostra app viene inesorabilmente bocciata. Come risolvere? Qualche consiglio.

  1. Nello XAML non preimpostate la proprietà Source – lo farete da codice solo se serve
  2. quando serve? Potete controllare il valore di Microsoft.Xna.Framework.Media.MediaPlayer.GameHasControl; se vale false, significa che c’è già un audio che sta andando, e quindi all’interno della vostra app
  3. Ricordo che NON si può usare la classe SoundEffect per la background music: quest’ultima è specifica per gli effetti sonori, dal momento che qualsiasi cosa mandiate sullo stream viene miscelato comunque con altri suoni già presenti

Ecco un url che spiega questo problema: http://blogs.msdn.com/b/oren/archive/2010/12/02/wp7-dev-tip-detecting-whether-or-not-the-user-is-playing-music-in-the-background.aspx.

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.