Nano Hash - криптовалюты, майнинг, программирование

Приложение не загружается с Music LibGDX

Проблема

У меня возникли трудности с загрузкой песни для небольшой игровой практики для Android, которую я пытаюсь создать. Вся графика и рендеринг работают отлично, и загрузка на мой планшет Android работает отлично и отображает отлично. Однако, когда я пытаюсь добавить фоновую музыку, приложение зависает с черным экраном при попытке запуска, а затем просто закрывается с диалоговой ошибкой «К сожалению, имя приложения остановлено».

Я пытался..

До сих пор я пробовал почти все способы загрузки ресурсов. Я использовал:

Попытка 1

public class MyGame extends ApplicationAdapter {
    Music song;

    ...

    @Override
    public void create() {
        song = Gdx.audio.newMusic(Gdx.files.internal("song.mp3"));
        song.play();
        ...
    }
}

Попытка 2

public class Audio {
    Music song;
    public Audio() {
        song = Gdx.audio.newMusic(Gdx.files.internal("song.mp3"));
        song.play();
    }
}

public class MyGame extends ApplicationAdapter {
    Audio Song; //Custom Class

    ...

    @Override
    public void create() {
        song = new Audio()
    }
}

Попытка 3

public class MyGame extends ApplicationAdapter {
    AssetManager manager;

    ...

    @override
    public void create() {
        manager = new AssetManager();
        manager.load("song.mp3", Music.class);
        ...
        manager.finishLoading();
        Music song = manager.get("snd/Of the Airship Academy.mp3", Music.class);
        song.play();
    }
}

Все это отлично работает при запуске настольной версии, но при загрузке на мое устройство Android приложение дает сбой и останавливается.

Другие примечательные вещи:

  • Я пытаюсь загрузить песню размером чуть больше 3 МБ.
  • Я пробовал иметь песню в папке assets, а также в папке assets/snd
  • Можно ли получить живой отладчик для отладки на Android или увидеть какую-то трассировку для любых возможных ошибок?

Спасибо

13.06.2014

  • В logcat должна быть записана трассировка стека. 14.06.2014
  • @don И где бы это было? Извините, я новичок в разработке для Android и libgdx. 14.06.2014
  • например, здесь это объясняется: stackoverflow.com/a/23353174/2399024 14.06.2014
  • У меня проблемы с получением трассировки стека. Я использую NetBeans и (из-за проблемы с графикой) использую командную строку для установки на свое устройство Android с помощью: gradlew.bat android:installDebug android:run 14.06.2014

Ответы:


1

Отвечать

Итак, для тех, у кого есть такая же проблема, я решил поделиться тем, как я ее исправил. Я обнаружил, что музыка Hz для песни, которую я использовал, несовместима с музыкальным загрузчиком для libgdx. В итоге я засунул свою песню в Audacity и сохранил разные ее версии с разными рейтингами проекта. Как только это было сделано, файл загружался и воспроизводился как обычно на моем планшете Android.

Вывод. Убедитесь, что битрейт вашей музыки совместим с используемым вами загрузчиком музыки. Понадобилась целая вечность, чтобы понять это...

14.06.2014
  • Знаете, что было бы очень удобно? на самом деле говорит нам битрейт, Гц и т.д., что работает. Справка libgdx точно не дает никаких подсказок. 27.12.2015
  • Как только я вставил его в Audacity и экспортировал в формате mp3, он заработал нормально, независимо от того, на какой скорости он был. Я думаю, что в исходном файле было что-то странное, и, просто экспортировав его через Audacity, проблема была решена. Надеюсь, это поможет! 27.12.2015
  • Спасибо, что вернулись. Я сделал точно так же - экспортировал мп3 из аудасити. Я просто получаю очень бесполезное сообщение «Актив не загружен» в консоли. Без каких-либо других подсказок. Неверный путь? слишком большой? кто знает! 27.12.2015
  • В конце концов я обнаружил, что пример 2 работал нормально, но пример 3 возвращал актив не загружен. 28.12.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..