2016-10-04 5 views
0

У моего приложения есть DetailView из ListView. Внутри detailView я могу записывать, хранить на SD-карте и воспроизводить аудиофайл (outputFile), проблема в том, что его всегда самый последний записанный звук независимо от элемента, нажатого в моем спискеView. Как связать записанный выходной файл с выбранным элементом clickView detailView? Я надеюсь в этом есть смысл. Заранее спасибо.Воспроизведение аудио на основе элемента списка, нажатого

play.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) throws IllegalArgumentException,SecurityException,IllegalStateException { 
      MediaPlayer m = new MediaPlayer(); 

      try { 
       m.setDataSource(outputFile); //AUDIO DATA SOURCE outputFile 
      } 

      catch (IOException e) { 
       e.printStackTrace(); 
      } 

      try { 
       m.prepare(); 
      } 

      catch (IOException e) { 
       e.printStackTrace(); 
      } 

      m.start(); 
      Toast.makeText(getActivity().getBaseContext(), "Playing audio", Toast.LENGTH_LONG).show(); 
     } 
+0

Проблема заключается в адаптере и данных, введенных в адаптер. – suku

ответ

0

Я не знаю, чего вы хотите полностью, но следующее будет работать по вашему вопросу.

Вы можете использовать хэш-карту для хранения звука, назначенного кнопке.

private HashMap<String, String> hm; 

public MyAdapter(){ 
    hm = new HashMap<>(); 
} 

После того, как вы записали и сохранили аудио, назначить счетчик записей 0, 1,2, ... и хранить следующие

hm.put("Position" & counter, outputFilePath); 

Тогда в вашем play.OnClickListener советуем использовать последующий в качестве источника данных

m.setDataSource(hm.get("Position" & itemPosition)); 
Смежные вопросы