2011-06-02 7 views
5

So di poter fare riferimento a XNA per la classe SoundEffect e questo è quello che ho fatto finora, ma mi chiedevo se c'era un modo migliore di quello che sono stato facendo.Cosa usare per riprodurre effetti sonori in silverlight per wp7

using Microsoft.Xna.Framework; 
using Microsoft.Xna.Framework.Audio; 

using (var stream = TitleContainer.OpenStream("test.mp3")) 
{ 
      var effect = SoundEffect.FromStream(stream); 
      FrameworkDispatcher.Update(); 
      effect.Play(); 
} 

Per la mia applicazione di test ho 20 suona ogni 1 secondo a lungo che voglio giocare una volta il tasto viene premuto. Sto giocando con tecniche diverse ma, se possibile, mi piacerebbe sapere come fanno i professionisti a fare ciò prima di impegnarmi a creare un'app basata su effetti sonori. Piccole cose come il caricamento dell'effetto sonoro o il caricamento dell'istanza in cui è premuto il pulsante sarebbero utili.

Grazie.

+0

Hai controllato MediaElement? – Shanadas

+0

Ho fatto alcune letture su MediaElement e non suggeriscono di usarlo per suoni brevi ma piuttosto per tracce lunghe come la musica di sottofondo. – Tom

+0

Penso che il soundeffect eccetta uno stream di file wav non mp3 – Gluip

risposta

2

Se fossi in te vorrei utilizzare PhoneyTools SoundEffectPlayer

Questa classe viene utilizzata per giocare SoundEffect oggetti utilizzando l'integrazione XNA. Il lettore deve vivere abbastanza a lungo per riprodurre l'effetto sonoro , quindi è normale che lo abbia lo scope all'esterno di un metodo. Per esempio:

public partial class MediaPage : PhoneApplicationPage 
{ 
    // ... 

    SoundEffectPlayer _player = null; 

    private void playButton_Click(object sender, RoutedEventArgs e) 
    { 
    var resource = Application.GetResourceStream(new Uri("alert.wav", UriKind.Relative)); 
    var effect = SoundEffect.FromStream(resource.Stream); 
    _player = new SoundEffectPlayer(effect); 
    _player.Play(); 

    } 
} 
+0

Ho provato ad usare phoneytools per riprodurre 4 suoni diversi allo stesso tempo e anche se ritarda ho anche provato l'esempio dal post qui sotto e fa la stessa cosa. Non sono sicuro del motivo per cui sto ottenendo questo ritardo. Sia sull'emulatore che sul telefono. – Tom

2

Penso che un buon esempio sarebbe il campione ufficiale su AppHub. Dimostra come suonare più suoni. È possibile scaricare direttamente il campione da here.

questo esempio viene illustrato come utilizzare di XNA Framework SoundEffect e classi SoundEffectInstance di giocare più suoni contemporaneamente in un'applicazione Silverlight per Windows Phone . Mostra anche un modo semplice per impostare un DispatchTimer per chiamare FrameworkDispatcher.Update al fine di simulare il ciclo di gioco per gli interni del framework XNA . Infine, lo mostra come caricare un file audio wave in uno Stream che può essere riprodotto da le classi SoundEffect.

Problemi correlati