Предзагрузка звуков из ресурсов в главной активити

Структура приложения выглядит примерно так: Главное активити -> настройки -> игра. При открытии "игры" сразу должен проиграться звук. Все файлы звуков в папке assets/Sounds. Загружаю/играю звук так:

int SoundStart = loadSound("Sounds/start.wav");
playSound(SoundStart);


    private int loadSound(String fileName) {
        AssetFileDescriptor afd = null;
        try {
            afd = mAssetManager.openFd(fileName);
        } catch (IOException e) {
            e.printStackTrace();
            //Toast.makeText(this, "Не могу загрузить файл " + fileName,
            //        Toast.LENGTH_SHORT).show();
            return -1;
        }
        return mSoundPool.load(afd, 1);
    }

    private void playSound(int sound) {
        if (sound > 0)
            mSoundPool.play(sound, 1, 1, 1, 0, 1);
    }

Проблема в том, что в игре несколько десятков разных звуков и, если их загружать при запуске активити "игра", то звук старта не проигрывается, он просто не успевает подгрузиться. Приходится делать задержку по таймеру на пару секунд, тогда играет. Но это же костыль. А если делаю загрузку файлов в "главной" активити с отображением прогресс-бара, то эти ресурсы не видятся в "игре".

Вопрос: как правильно загрузить звуки в "главной" активити и сделать, чтоб они проигрывались в "игре".


Ответы (0 шт):