Загрузить SoundPool в потоке во время запуска приложения

это мой первый вопрос здесь. Я искал весь путь, много пробовал, но не мог получить то, что я хочу сделать. Вот проблема: у меня есть приложение, которое использует SoundPool для воспроизведения звуков, вот и все. Но их много (> 50) и требуется время, чтобы загрузить один за другим. посмотри;

@Override public View onCreateView (расширитель LayoutInflater, контейнер ViewGroup, Bundle saveInstanceState) { View view = inflater.inflate (R.layout.fragment_fragment_hue, container, false); DBSupport.setContext(getActivity()); список = DBSupport.getListaHue();

    sp = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);

    final ArrayList<CharSequence> lista_string = new ArrayList<CharSequence>();

    for (int i = 0; i < lista.size(); i++) {

        Hue e = null;
        e = lista.get(i);
        e.setValor(sp.load(getActivity(), getResId(e.getNome_hue(), ListaHues.class), 1));
        lista_string.add(lista.get(i).getDescricao());
    }

И я хочу создать поток или асинхронную загрузку, пока я прокручиваю ListView

Любой совет?

PS: я новичок, так что извините, если код смущает.

Спасибо!!


person Thiago Cezzar    schedule 12.02.2016    source источник


Ответы (1)


Здесь вам нужно загрузить все звуки, которые вы хотели бы воспроизвести в своей активности, когда она запускается в onCreate(). Прежде чем вызывать load() для любого звука, вы также должны установить один прослушиватель с помощью setOnLoadCompleteListener(), который определяет, когда все звуки загружены. Только после того, как звуки будут завершены, вы можете попытаться воспроизвести их.

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

person Doug Stevenson    schedule 12.02.2016
comment
Я могу установить все значения звуков в действии, но мне нужно загрузить каждое из них на фрагмент! Проблема в том, что для загрузки требуется вдвое больше времени. Я думаю, мне придется предоставить загрузочный экран... Но спасибо за помощь! - person Thiago Cezzar; 16.02.2016