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 |
} |
---|