packagecom.terry;importjava.io.File;importjava.util.ArrayList;importjava.util.List;importandroid.app.ListActivity;importandroid.media.MediaPlayer;importandroid.media.MediaPlayer.OnCompletionListener;importandroid.os.Bundle;importandroid.view.KeyEvent;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.ArrayAdapter;importandroid.widget.Button;importandroid.widget.ListView;importandroid.widget.Toast;publicclassmusicActivityextendsListActivity {//播放对象privateMediaPlayer myMediaPlayer;//播放列表privateListmyMusicList=newArrayList();//当前播放歌曲的索引privateintcurrentListItem=0;//音乐的路径privatestaticfinalString MUSIC_PATH=newString("/sdcard/");/**Called when the activity is first created.*/@OverridepublicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myMediaPlayer=newMediaPlayer();
findView();
musicList();
listener();
}//绑定音乐voidmusicList(){
File home=newFile(MUSIC_PATH);if(home.listFiles(newMusicFilter()).length>0){for(File file:home.listFiles(newMusicFilter())){
myMusicList.add(file.getName());
}
ArrayAdaptermusicList=newArrayAdapter(musicActivity.this,R.layout.musicitme, myMusicList);
setListAdapter(musicList);
}
}//获取按钮voidfindView(){
viewHolder.start=(Button)findViewById(R.id.start);
viewHolder.stop=(Button)findViewById(R.id.stop);
viewHolder.next=(Button)findViewById(R.id.next);
viewHolder.pause=(Button)findViewById(R.id.pause);
viewHolder.last=(Button)findViewById(R.id.last);
}//监听事件voidlistener(){//停止viewHolder.stop.setOnClickListener(newOnClickListener() {
@OverridepublicvoidonClick(View v) {//TODO Auto-generated method stubif(myMediaPlayer.isPlaying()){
myMediaPlayer.reset();
}
}
});//开始viewHolder.start.setOnClickListener(newOnClickListener() {
@OverridepublicvoidonClick(View v) {//TODO Auto-generated method stubplayMusic(MUSIC_PATH+myMusicList.get(currentListItem));
}
});//下一首viewHolder.next.setOnClickListener(newOnClickListener() {
@OverridepublicvoidonClick(View v) {//TODO Auto-generated method stubnextMusic();
}
});//暂停viewHolder.pause.setOnClickListener(newOnClickListener() {
@OverridepublicvoidonClick(View v) {//TODO Auto-generated method stubif(myMediaPlayer.isPlaying()){
myMediaPlayer.pause();
}else{
myMediaPlayer.start();
}
}
});//上一首viewHolder.last.setOnClickListener(newOnClickListener() {
@OverridepublicvoidonClick(View v) {//TODO Auto-generated method stublastMusic();
}
});
}//播放音乐voidplayMusic(String path){try{
myMediaPlayer.reset();
myMediaPlayer.setDataSource(path);
myMediaPlayer.prepare();
myMediaPlayer.start();
myMediaPlayer.setOnCompletionListener(newOnCompletionListener() {
@OverridepublicvoidonCompletion(MediaPlayer mp) {//TODO Auto-generated method stubnextMusic();
}
});
}catch(Exception e) {//TODO: handle exceptione.printStackTrace();
}
}//下一首voidnextMusic(){if(++currentListItem>=myMusicList.size()){
currentListItem=0;
}else{
playMusic(MUSIC_PATH+myMusicList.get(currentListItem));
}
}//上一首voidlastMusic(){if(currentListItem!=0)
{if(--currentListItem>=0){
currentListItem=myMusicList.size();
}else{
playMusic(MUSIC_PATH+myMusicList.get(currentListItem));
}
}else{
playMusic(MUSIC_PATH+myMusicList.get(currentListItem));
}
}//当用户返回时结束音乐并释放音乐对象@OverridepublicbooleanonKeyDown(intkeyCode, KeyEvent event) {//TODO Auto-generated method stubif(keyCode==KeyEvent.KEYCODE_BACK){
myMediaPlayer.stop();
myMediaPlayer.release();this.finish();returntrue;
}returnsuper.onKeyDown(keyCode, event);
}//当选择列表项时播放音乐@OverrideprotectedvoidonListItemClick(ListView l, View v,intposition,longid) {//TODO Auto-generated method stubcurrentListItem=position;
playMusic(MUSIC_PATH+myMusicList.get(currentListItem));
}
}