Как воспроизвести звуковой эффект на MonoGame для Android?

У меня есть массив экземпляров звуковых эффектов в проекте MonoGame, который я тестирую на эмуляторе Android 19 Android. Звуковые эффекты загружаются из папки "Звук" в папке "Ресурсы / Содержимое". Все они в формате.wav. Я не могу понять, как заставить звуковой эффект играть правильно. Громкость на эмуляторе установлена ​​на полную, и я протестировал код на XNA 4.0 для Windows Phone без проблем. Как я могу исправить эту проблему?

SoundEffectInstance[] soundEffects = new SoundEffectInstance[5];
soundEffects[0] = Content.Load<SoundEffect>("Sound/1").CreateInstance();
soundEffects[0].Play(); //This should play the sound effect, but no sound comes from the emulator

Примечание. Даже если вместо этого я использую тип "SoundEffect", звук не воспроизводится.

SoundEffect[] soundEffects = new SoundEffect[5];
soundEffects[0] = Content.Load<SoundEffect>("Sound/1");
soundEffects[0].Play();

1 ответ

Вы загружаете их как WAV или вы сначала компилируете их в файлы xnb? Я использую компилятор контента MonoGame для компиляции моих wav-файлов в xnb, и я могу заставить их нормально играть на Android.

Вот как я проигрываю свои аудио файлы:

// Loading the sound effect
this.SoundEffect = this.ContentManager.Load<SoundEffect>(this.assetName);

// Playing the audio
public virtual void Play(bool loop = false)
{
    if (this.SoundEffect == null)
    {
        throw new ArgumentNullException(
            "SoundEffect",
            "You cannot play a sound effect that has nothing loaded!");
    }

    this.SoundEffectInstance = this.SoundEffect.CreateInstance();
    this.SoundEffectInstance.IsLooped = loop;
    this.SoundEffectInstance.Pitch = this.Pitch;
    this.SoundEffectInstance.Volume = this.Volume;
    this.SoundEffectInstance.Play();
    this.IsPlaying = true;
}

Имейте в виду, этот аудиофайл компилируется в xnb перед развертыванием на устройстве. Логически я не понимаю, почему MonoGame для Android не может запускать wav-файлы, но даже тогда скомпилируйте их в xnb. Таким образом, вы всегда будете в курсе любых изменений, вносимых в компилятор / загрузчик xnb (однако маловероятно, что он действительно изменится).

Другие вопросы по тегам