root/trunk/25.AudioTest/src/soo/audio/AudioTest.java

리비전 90, 2.7 kB (mefour에 의해 체크인됨, 15 년 전)

--

Line 
1 package soo.audio;
2
3 import java.io.File;
4 import java.io.FilenameFilter;
5 import java.io.IOException;
6 import java.util.ArrayList;
7 import java.util.List;
8
9 import android.app.ListActivity;
10 import android.media.MediaPlayer;
11 import android.media.MediaPlayer.OnCompletionListener;
12 import android.os.Bundle;
13 import android.view.View;
14 import android.widget.ArrayAdapter;
15 import android.widget.ListView;
16 import android.widget.TextView;
17 import android.widget.Toast;
18
19 public class AudioTest extends ListActivity {
20     /** Called when the activity is first created. */
21         private static final String PATH="/sdcard/";
22         private List<String> list = new ArrayList<String>();
23         private MediaPlayer mp = new MediaPlayer();
24         private int cPosition = 0; //��� ��� ��������
25         private TextView tv;
26     @Override
27     public void onCreate(Bundle savedInstanceState) {
28         super.onCreate(savedInstanceState);
29         setContentView(R.layout.main);
30        
31         tv = (TextView)findViewById(R.id.textVeiw02);
32         setAdapter();
33        
34     }
35    
36     private void setAdapter(){
37         File f = new File(PATH);
38         if(f.listFiles(new Filter()).length>0){
39                 for(File fChild : f.listFiles(new Filter())){
40                         list.add(fChild.getName());
41                 }
42                 ArrayAdapter<String> aa
43                         = new ArrayAdapter<String>(this, R.layout.item,list);
44                 //setListAdapter(aa);
45                 setListAdapter(aa);
46         }
47     }
48    
49     //item���대┃��� ��諛����� �대깽���⑤�留�   
50     @Override
51     protected void onListItemClick(ListView l, View v, int position, long id) {
52         cPosition = position;
53         play(PATH+list.get(position)); //sdcard/???.mp3
54     }
55    
56     private void play(String songPath){
57         try{
58                 mp.reset();
59                 mp.setDataSource(songPath);
60                 mp.prepare();
61                 mp.start();
62                 Toast.makeText(this,"PLAY : "+songPath,Toast.LENGTH_LONG).show();
63                 tv.setText("PLAY : "+songPath);
64                
65                 mp.setOnCompletionListener(new OnCompletionListener() {
66                                
67                                 @Override
68                                 public void onCompletion(MediaPlayer mp) {
69                                         nextPlay();
70                                 }
71                         }); //��끝����� ����諛����� �대깽��(�곗� �ъ���
72         }catch(IOException ie){
73                 Toast.makeText(this,ie.toString(),Toast.LENGTH_LONG).show();
74         }
75     }
76    
77     private void nextPlay(){
78         ++cPosition;
79         if(cPosition < list.size()){ //�ㅼ� 怨≪� ���硫�
80                 Toast.makeText(this, "�ㅼ�怨��ъ�",Toast.LENGTH_SHORT).show();
81                 play(PATH+list.get(cPosition));
82         }else{ //留��留�怨≪� ���硫�..
83                 //泥��怨≪�濡���� 媛��.
84                 cPosition=0;
85                 tv.setText("READY");
86         }
87     }
88 }
89
90 class Filter implements FilenameFilter{
91
92         @Override
93         public boolean accept(File dir, String filename) {             
94                 return filename.endsWith(".mp3");
95         }
96        
97 }
참고: 소스 브라우저를 사용하면서 도움이 필요하다면, TracBrowser를 참고하십시오.