#android #audio #mediarecorder
#Android #Аудио #mediarecorder
Вопрос:
В моем приложении есть подробный просмотр из ListView. Внутри DetailView я могу записывать, сохранять на SD-карте и воспроизводить аудиофайл (outputFile), проблема в том, что это всегда самый последний записанный звук, независимо от того, какой элемент нажат в моем ListView. Как я могу связать записанный выходной файл с выбранным элементом, на который нажат 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();
}
Комментарии:
1. Проблема заключается в адаптере и данных, введенных в адаптер.
Ответ №1:
Я не знаю, чего вы хотите полностью, но следующее будет работать в ответ на ваш вопрос.
Вы можете использовать хэш-карту для хранения звука, назначенного кнопке.
private HashMap<String, String> hm;
public MyAdapter(){
hm = new HashMap<>();
}
После того, как вы записали и сохранили аудио, назначьте счетчик для записей 0, 1,2,… И сохраните следующее
hm.put("Position" amp; counter, outputFilePath);
Затем в вашей игре.OnClickListener использует следующее в качестве источника данных
m.setDataSource(hm.get("Position" amp; itemPosition));