2010-10-26 18 views
18

Sto lavorando allo sviluppo di applicazioni basate su Windows 7 in Silverlight. Non sono stato in grado di trovare un modo per riprodurre un file audio nel telefono di Windows 7 a livello di programmazione. L'ho cercato su google da alcuni giorni ma non sono riuscito a trovare una soluzione. C'è una classe SoundPlayer in C# ma suppongo che non sia disponibile in Windows 7 Phone. Qualcuno può aiutare, per favore?Riproduzione di un file audio in Windows 7 Telefono

risposta

14

Utilizzare Xna per riprodurre il suono. È possibile attraversare riferimento Xna da un'applicazione Silverlight, però, per la riproduzione di un file audio, è necessario quanto segue:

using Microsoft.Xna.Framework; 
using Microsoft.Xna.Framework.Audio 
// ... 
Stream stream = TitleContainer.OpenStream("sounds/bonk.wav"); 
SoundEffect effect = SoundEffect.FromStream(stream); 
FrameworkDispatcher.Update(); 
effect.Play(); 

Tutto il meglio per lo sviluppo delle applicazioni!

+0

Wow, è stato grandioso. Grazie mille vamana :) – Aqueel

+5

Non è vero, Silverlight per Windows Phone 7 SUPPORTA la riproduzione audio. Vedi http://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement(VS.95).aspx –

+2

Attenzione: si dovrebbe utilizzare SoundEffect solo per brevi brani audio, non per musica di sottofondo. Per questo è necessario utilizzare un MediaElement –

19

può inserire un MediaElement nella vista XAML:

<MediaElement 
    x:Name="sound" 
    Source="sound.wma" 
    AutoPlay="False" /> 

poi nel code-behind:

sound.Play(); 

I formati supportati sono MP3 e WMA.

+1

Questo non ha funzionato per me finché non ho impostato AutoPlay = " Vero". Non so perché. Ho impostato nome e autoplay in xaml e ho impostato il codice sorgente e sound.play() nel codice (dato che lo sto usando per riprodurre più suoni), e non ha funzionato con AutoPlay su false, ma funziona perfettamente con esso impostato su true. Grazie. –

+1

-1 perché in questo modo uccide qualsiasi altro brano mp3 + interrompe anche la musica se era in riproduzione sul dispositivo. In questo modo la tua app WP7 non passerà la convalida se non ottieni specificamente il permesso dell'utente di disattivare la sua musica. Sono appena stato rifiutato per questo. Al momento non esiste un modo valido per utilizzare l'audio compresso sulla piattaforma WP7. WP7 è sicuramente piuttosto debole per quanto riguarda il supporto dei media. – Jonny

3

ne dite è sufficiente utilizzare un comportamento incorporato?

<Button> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="Click"> 
      <eim:PlaySoundAction Source="/Alarm1.wma" Volume="1"/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</Button> 

Sono necessari questi due spazi dei nomi.

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:eim="clr-namespace:Microsoft.Expression.Interactivity.Media;assembly=Microsoft.Expression.Interactions" 
+0

Sembra una soluzione al crear. Eliminate se utilizza un elemento Media? –

Problemi correlati