Dzień dobry wszystkim.
Zrobiłem na uczelnie AudioPlayer lecz mam problem z określeniem ścieżki. Mianowicie, chciałbym abym mógł odtwarzać mp3 z całego urządzenia, nie tylko z karty SD. Ba, nawet na karcie SD nie wykrywa piosenek z podfolderów. Poniżej zamieszczam kod i z góry dziękuję za jakiekolwiek rady i pomoc.
class Mp3Filter implements FilenameFilter{
public boolean accept(File dir, String name){
return (name.endsWith(".mp3"));
}
}
class WavFilter implements FilenameFilter{
public boolean accept(File dir, String name){
return (name.endsWith(".wav"));
}
}
public class MainActivity extends ListActivity {
private static final String PATH = new String(Environment.getExternalStorageDirectory().getPath() + "/");
private List<String> songs = new ArrayList<String>();
private MediaPlayer mp = new MediaPlayer();
private ImageButton buttonPause;
private ImageButton buttonStop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
updatePlayList();
Button stopplay = (Button)findViewById(R.id.stop);
stopplay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.stop();
}
});
/**PAUSE & UNPAUSE BUTTON*/
final Button pause = (Button)findViewById(R.id.btnPause);
pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// sprawdza czy gra, jeśli nie to można pause
if(mp.isPlaying()){
if(mp!=null){
mp.pause();
}
}else{
// jeśli nie gra to start
if(mp!=null){
mp.start();
}
}
}
});}
@Override
protected void onListItemClick(ListView list, View view, int position, long id){
try {
mp.reset();
mp.setDataSource(PATH + songs.get(position));
mp.prepare();
mp.start();
} catch(IOException e){
Log.v(getString(R.string.app_name), e.getMessage());
}
}
private void updatePlayList(){
File home = new File(PATH);
if (home.listFiles(new Mp3Filter()).length > 0){
for (File file : home.listFiles(new Mp3Filter())){
songs.add(file.getName());
}
ArrayAdapter<String> songList = new ArrayAdapter<String>(this, R.layout.song_item,songs);
setListAdapter(songList);
}
}
}