안녕하십니까.
저는 안드로이드를 독학하는 학생입니다.
저의공부방식은 하루에 자바AND안드로이드 강의를 어느정도 들은후
앱을 하나씩 만들어보는 씩으로 공부하는데요.
이번에 제가만드는 앱은 내장&외장 의 모든 .MP3 파일이라는 확장자를 가진 파일을 포함한 모든 폴더를 출력하는것입니다.
아래의 소스는 구글링을통해 얻은 소스입니다.
그런데, 아래의소스처럼 모든 .MP3라는 확장자를가진 파일을 불러내는것까지는 구글링을통해 습득할수있었으나
여기서 어떻게해야할지 도저희 감을못잡겠네요.
구글링을해도 나오지않는것같아 이허게 여쭈어봅니다.
import java.io.File;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.provider.MediaStore;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class actMain extends Activity {
ListView lvFileList;
Button btnPlay;
Button btnNext;
ArrayList<String> searchFileList = new ArrayList<String>();// 검색한 파일 목록
ArrayList<String> searchFileName = new ArrayList<String>();// 파일 이름만 저장할 목록
MediaPlayer mp = new MediaPlayer();//
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lvFileList = (ListView) findViewById(R.id.lvFileList);
searchFileList.clear();
searchFileName.clear();
String sdcardPath = android.os.Environment
.getExternalStorageDirectory().getAbsolutePath(); // SD카드 경로
File root = new File(sdcardPath);
if (root == null) {
ToastMessage("파일 검색에 실패 했습니다.", Toast.LENGTH_LONG);
} else {
SearchFile(sdcardPath); // 파일을 검색한다
}
if (searchFileList.size() <= 0)
ToastMessage("재생할 오디오 파일이 존재하지 않습니다.", Toast.LENGTH_LONG);
else {
ArrayAdapter<String> adp;
adp = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,
searchFileName);
lvFileList.setAdapter(adp);
}
}
private void ToastMessage(String msg, int time) {
Toast.makeText(actMain.this, msg, time).show();
}
private void SearchFile(String str) {
File root = new File(str);
String[] file = root.list();
if (file != null) {
for (int idx = 0; idx < file.length; ++idx) {
File f = new File(str + "/" + file[idx]);
if (f.isFile())
{
if (f.getName().endsWith(".mp3")) {
searchFileList.add(str + "/" + file[idx]);
searchFileName.add(file[idx]);
continue;
}
}
if (f.isDirectory())
SearchFile(str + "/" + file[idx]);
}
}
private void playAudio(String filePath) {
try {
mp.reset();
mp.setDataSource(filePath);
mp.prepare();
mp.start();
mp.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp1) {
}
});
} catch (Exception err) {
ToastMessage(err.getMessage(), Toast.LENGTH_LONG);
}
}
}