简体   繁体   English

如何从ListView播放音频录制的文件

[英]How to play audio recorded file from ListView

i am developing an application of Call recording . 我正在开发一个呼叫录音的应用程序。 it record the call and save it in Phone memory(file Manager) and after saving audio file, i managed to show the recorded file in list View. 它记录呼叫并将其保存在手机内存(文件管理器)中,保存音频文件后,我设法在列表视图中显示录制的文件。 I want to know how to play the audio file through list View. 我想知道如何通过列表视图播放音频文件。 how can i do this.? 我怎样才能做到这一点。?

You can play it like below. 你可以像下面这样玩。

mListView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                playSong(MEDIA_PATH + files.get(position));
            }
        });

and here is your playSong method. 这是你的playSong方法。

private void playSong(String songPath) {
        try {
            mp.reset();
            mp.setDataSource(songPath);
            mp.prepare();
            mp.start();

        } catch (IOException e) {
            Log.v(getString(R.string.app_name), e.getMessage());
        }
    }

So your full code will looke something like this. 所以你的完整代码会讨论这样的事情。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = (ListView) findViewById(R.id.mylist);

    // this will show the recorded files into ListVIew
    private List<String> myList = new ArrayList<String>();

    File list[] = file.listFiles();
    for (int i = 0; i < list.length; i++) {
        myList.add(list[i].getName());
    }
    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, files);
    listView.setAdapter(adapter);

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
        playSong(MEDIA_PATH + myList.get(position));
    }

});

private void playSong(String songPath) {
            try {
                mp.reset();
                mp.setDataSource(songPath);
                mp.prepare();
                mp.start();

            } catch (IOException e) {
                Log.v(getString(R.string.app_name), e.getMessage());
            }
        }

}

where mp is your media player object private MediaPlayer mp = new MediaPlayer(); 其中mp是您的媒体播放器对象private MediaPlayer mp = new MediaPlayer(); and MEDIA_PATH is your folder path where you have your all recording like, 和MEDIA_PATH是你的所有录音的文件夹路径,如,

private static final String MEDIA_PATH = new String(
            Environment.getExternalStorageDirectory() + "/AudioRecorder/");
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = (ListView) findViewById(R.id.mylist);

    // this will show the recorded files into ListVIew
    final String[] files = new File("mnt/sdcard/Audio File/").list();
    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, files);
    listView.setAdapter(adapter);

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {

         //checking the position of item in list
        Object listItem =     listView.getItemAtPosition(position);
        Toast.makeText(MainActivity.this, ""+listItem, Toast.LENGTH_SHORT).show();
    }

});
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM