Reproducción de sonidos

Sonidos usando SoundEffect

Para reproducir un sonido usando el tipo SoundEffect, cree una variable para contener el sonido cargado. Por lo general, esta sería una variable de instancia en la clase Game:

private SoundEffect mySound;

Luego, en el método LoadContent() de la clase Game:

protected override void LoadContent()
{
    // load the audio content
    mySound = Content.Load("mySound");
}

Finalmente, cada vez que necesite reproducir el sonido, simplemente invoque el método Play():

bool played = mySound.Play();

Si por alguna razón, como que ya se están reproduciendo demasiados sonidos, el método Play() puede devolver falso. Si el sonido comenzó a reproducirse correctamente, devolverá “verdadero”.

Controlar la reproducción usando SoundEffectInstance

SoundEffect.Play() reproduce el efecto de sonido en una forma de “disparar y olvidar”. El sonido se reproduce una vez y el marco gestiona su duración. No puede cambiar las propiedades (volumen, panorama, tono) del sonido durante la reproducción, repetirlo, colocarlo en 3D o pausarlo.

Puede mantener una referencia al sonido que se está reproduciendo creando una SoundEffectInstance. En lugar de llamar a SoundEffect.Play(), llama a CreateInstance() en SoundEffect y luego a Play() en la nueva instancia:

SoundEffectInstance instance = mySound.CreateInstance();

// Set some properties
instance.Pitch = 1.0f;
instance.IsLooped = true;

// Play the sound effect
instance.Play();

Puede haber varias instancias del mismo SoundEffect, cada una con sus propias propiedades. La instancia se puede reproducir llamando a Play() después de que se haya detenido la reproducción.