2016-02-12 165 views
1

這是我的第一個問題。我一直搜索,嘗試了很多,但無法得到我想要做的。問題在於:我有一個使用SoundPool播放聲音的應用程序,就是這樣。但是需要加載很多(> 50),並且需要一段時間才能加載。看一看;當應用程序啓動時將SoundPool加載到線程中

@Override 公共視圖onCreateView(LayoutInflater充氣,容器的ViewGroup, 捆綁savedInstanceState){ 視圖視圖= inflater.inflate(R.layout.fragment_fragment_hue,容器,FALSE); DBSupport.setContext(getActivity()); lista = 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:我是一個新手,很抱歉,如果代碼是混淆。

謝謝!

回答

0

你需要做的是加載你想在你的活動中能夠在onCreate()開始的時候播放的所有聲音。在任何聲音上調用load()之前,您還應該設置一個帶有setOnLoadCompleteListener()的單個偵聽器,該偵聽器計算出所有聲音何時加載完畢。只有在聲音完成後,才能嘗試播放它們。

如果您需要在用戶與您的用戶界面進行交互之前將所有聲音全部加載完畢,則可能需要提供某種等待指示符,直到完成所有聲音。完成後,顯示您的用戶界面。然後只需要play聲音,它應該立即開始播放。

+0

我可以設置活動中的所有聲音值,但我必須加載每個片段!問題是需要加載兩倍的時間。我想我必須提供一個加載屏幕......但感謝您的幫助! –

相關問題