2014-03-07 3 views
1

전화 녹음 응용 프로그램을 개발 중입니다. 전화를 녹음하고 전화 메모리 (파일 관리자)에 저장하고 오디오 파일을 저장 한 후에, 나는 목록보기에서 기록 된 파일을 보여 주었다. 목록보기를 통해 오디오 파일을 재생하는 방법을 알고 싶습니다. 어떻게해야합니까?ListView에서 오디오 녹음 된 파일을 재생하는 방법

답변

3

다음과 같이 재생할 수 있습니다.

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

여기에 playSong 메서드가 있습니다.

그래서 전체 코드는 이와 같은 것입니다. MP는 미디어 플레이어 오브젝트 private MediaPlayer mp = new MediaPlayer();

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()); 
      } 
     } 

} 

입니다 및 MEDIA_PATH 당신이 당신의 모든처럼 기록이 폴더 경로,

private static final String MEDIA_PATH = new String(
      Environment.getExternalStorageDirectory() + "/AudioRecorder/"); 
+0

playSong (MEDIA_PATH + myList.get (위치))이다; PLZ myList.get (..)은 무엇입니까? – CreAToR

+0

@ user1688214, mylist는 sdcard에서 listview로 항목을 나열하는 데 사용한 목록 배열입니다. – InnocentKiller

+0

더 많은 도움이 필요하면 코드를 게시하십시오. 도움을받을 수 없기 때문에 도움을받을 수 없습니다. – InnocentKiller

0
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(); 
    } 

}); 
} 
+0

업데이트 된 답변을 확인하십시오. – InnocentKiller

+0

@InnocentKiller Plz이 코드를 확인하십시오. – CreAToR

+0

요구 사항에 따라 답변을 업데이트했습니다. – InnocentKiller

관련 문제