PlayN - нет звука на Android

У меня возникла проблема с воспроизведением звуков на Android. Я добавил следующий код в свой проект:

import playn.core.Sound;
...
@Override
public void init() {

    Sound bg = assets().getSound("bg");
    bg.play();
    ...
}

Код работает, как предполагалось, при запуске mvn test -Pjava. Звук играет без проблем. Однако, когда я запускаю mvn -Pandroid install, звук не воспроизводится. Я не получаю никаких ошибок в logcat или что-то еще, игра просто молчала.

Я пробовал:

  • Использование различных звуковых форматов (wav, mp3)
  • Загрузка звукового файла, отсутствующего в папке с ресурсами, - в этом случае я получаю сообщение об ошибке, указывающее, что звуковой файл не найден. Но я не получаю такой ошибки при загрузке фактического звукового файла
  • Использование разных версий mvn
  • Убедитесь, что устройство не настроено на молчание.
  • Использование нескольких устройств (Nexus 7, старый Android-телефон)
  • Воспроизведение этой проблемы в примере Витрины (это то же самое, что и в моем проекте)
  • Обновление PlayN с 1.7 до 1.7.2 без изменений.

Я обнаружил, что запуск mvn install вместо mvn test -Pjava загружает версию рабочего стола без звука. Это заставляет меня думать, что может быть проблема с командой установки, но я просто догадываюсь здесь.

Любые идеи о том, как заставить звук работать на Android?

Ответ 1

Мне удалось заставить звук работать с использованием mp3 файла (а не wav) и использовать вызов setLooping (true) только на файлы, загруженные с помощью getMusic(). GetSound() выдает "Ошибка переполнения размера кучи! Req: 1052672, максимальный размер: 1048576".

Подробнее см. тот же вопрос в списке рассылки PlayN.

Ответ 2

Я использую этот код в своей деятельности

MediaPlayer player = MediaPlayer.create (getApplicationContext(), R.raw.beep);
player.start();

чтобы воспроизвести звуковой сигнал. У меня есть файл beep.mp3 внутри папки res/raw.

Ответ 3

Попробуйте это с помощью Maven 3.0.3 или выше

cd funktest
mvn package
cd android
mvn android:deploy