2010-10-26 7 views
18

Je travaille sur le développement d'applications basées sur Windows 7 dans Silverlight. Je n'ai pas été en mesure de trouver un moyen de jouer un fichier audio dans Windows Phone 7 par programmation. Je l'ai googlé depuis quelques jours mais je n'ai pas pu trouver de solution. Il existe une classe SoundPlayer en C# mais je suppose qu'elle n'est pas disponible sur Windows Phone 7. quelqu'un peut-il aider s'il vous plait?Lecture d'un fichier audio sous Windows 7 Phone

Répondre

14

Utilisez Xna pour lire le son. Vous pouvez recouper Xna à partir d'une application Silverlight cependant, pour jouer un fichier audio, vous devez les éléments suivants:

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(); 

Tout le meilleur pour le développement de votre application!

+0

Wow c'était génial. Merci beaucoup vamana :) – Aqueel

+5

Ce n'est pas vrai, Silverlight pour Windows Phone 7 prend en charge la lecture audio. Voir http://msdn.microsoft.com/fr-fr/library/system.windows.controls.mediaelement(VS.95).aspx –

+2

Attention - Vous ne devez utiliser SoundEffect que pour des sons courts, pas pour la musique de fond. Pour cela, vous devez utiliser un MediaElement –

19

Vous pouvez placer un MediaElement dans votre vue XAML:

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

puis dans le code-behind:

sound.Play(); 

Les formats supportés sont MP3 et WMA.

+1

Celui-ci n'a pas fonctionné pour moi jusqu'à ce que je mets AutoPlay = " Vrai". Pas certain de pourquoi. J'ai mis le nom et la lecture automatique dans xaml, et ai placé le source et sound.play() dans le code (comme je l'utilise pour jouer plusieurs sons), et cela n'a pas fonctionné avec AutoPlay à false, mais cela fonctionne parfaitement mettre à vrai. Merci. –

+1

-1 parce que cette manière tue tout autre jeu mp3 + arrête aussi la musique si elle jouait sur l'appareil. Cela rendra votre application WP7 non acceptée si vous n'obtenez pas spécifiquement la permission de l'utilisateur pour éteindre sa musique. Je viens d'être refusé à cause de cela. Il n'y a vraiment pas de bon moyen actuellement d'utiliser l'audio compressé sur la plate-forme WP7. WP7 est sûrement très faible quand il s'agit de soutien aux médias. – Jonny

3

Que diriez-vous simplement utiliser un comportement intégré?

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

Vous avez besoin de ces deux espaces de noms.

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

Ressemble à une solution de crear. Avez-vous unos s'il utilise un Mediaelement? –