根据单击的列表视图项播放音频

时间:2016-10-04 20:53:44

标签: android audio mediarecorder

我的应用程序有一个来自ListView的DetailView。在detailView中我可以录制,存储在SD卡中并播放音频文件(outputFile),问题是它总是记录最新的音频而不管我在listView中点击的项目。如何将录制的outputFile与所选项目关联的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 个答案:

答案 0 :(得分:0)

我不完全知道你想要什么,但以下内容可以解决你的问题。

您可以使用散列图来存储分配给按钮的音频。

private HashMap<String, String> hm;

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

录制并存储音频后,为录音0,1,2,...分配计数器并存储以下内容

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

然后在你的play.OnClickListener中使用以下作为dataSource

m.setDataSource(hm.get("Position" & itemPosition));