Что не так с "не найден подходящий метод для загрузки"? - PullRequest
0 голосов
/ 17 июня 2019

Звук не воспроизводится при запуске моего приложения в Android, поэтому для обхода файлов рекомендуется использовать AssetManager: я хочу предварительно загрузить все файлы после инициализации класса и воспроизвести его позже в подфункции.

Менеджер должен использоваться глобально в классе, но, похоже, определение не является проблемой (пробная локальная реализация, та же ошибка).

Вот код:

public AssetManager manager=new AssetManager();

public InterpreterAudioPlugin() {
    //Preload all sounds
    FileHandle sounds=Gdx.files.internal("Sound");
    for (FileHandle file: sounds.list()){
        manager.load(Gdx.files.internal(file.toString()),Music.class);
        manager.finishLoading();
    }

При загрузке выдается сообщение о том, что «для загрузки не найдено подходящего метода». Не уверен, что здесь означает «нет подходящего метода», поскольку поиск в Google показал, что он очень специфичен для функции после, в моем случае, «загрузки». Любая помощь?

1 Ответ

0 голосов
/ 17 июня 2019

Не существует метода load(), который принимает аргументы: FileHandle и Class.Возможные методы загрузки:

load(AssetDescriptor)
load(String, Class)
load(String, Class, AssetLoaderParameters)

Ваш первый аргумент должен быть строкой, а не FileHandle.

Попробуйте это:

FileHandle sounds=Gdx.files.internal("Sound");
for (FileHandle file: sounds.list()){
    manager.load("Sound/" + file.name(), Music.class);
}
manager.finishLoading();
...