public class MainActivity extends Activity implements AdapterView.OnItemClickListener {
private MediaPlayer mediaPlayer;
private List musicList;
private int Index = -1;
private String MUSIC_PATH = new String("/storage/emulated/0/kgmusic/download");
ListView listView;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
}
setContentView(R.layout.activity_main);
mediaPlayer = new MediaPlayer();
System.out.println(Environment.getExternalStorageDirectory().toString());
findView();
musiclist();
start();
stop();
pause();
lastmusic();
nextMusic();
listView.setOnItemClickListener(this);
Log.e("KeyEvent", "KEYCODE_BACK");
// seekbar();
}
//获取按钮
void findView() {
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);
listView = (ListView) findViewById(R.id.android_list);
viewHolder.seekBar = (SeekBar) findViewById(R.id.seekbar);
viewHolder.current_time = (TextView) findViewById(R.id.current_time);
viewHolder.total_time = (TextView) findViewById(R.id.total_time);
}
private void musiclist() {
musicList = new ArrayList<>();
File musicfile = new File(MUSIC_PATH);
if (musicfile.listFiles(new MusicFilter()).length >= 0) {
for (File file : musicfile.listFiles(new MusicFilter())) {
musicList.add(file.getName().replace(".mp3",""));
}
ListAdapter listAdapter = new jukeboxv2.bmvod.net.testplayer.ListAdapter(this,musicList);
listView.setAdapter(listAdapter);
}
}
private void playmusic(String path) {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource(path);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
nextMusic();
}
});
}
private void stop() {
viewHolder.stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
}
});
}
private void start() {
viewHolder.start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
playmusic(MUSIC_PATH + musicList.get(Index));
}
});
}
private void pause() {
viewHolder.pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
} else {
mediaPlayer.start();
}
}
});
}
private void lastmusic() {
viewHolder.last.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Index != 0) {
if (--Index >= 0) {
Index = musicList.size();
} else {
playmusic(MUSIC_PATH + musicList.get(Index));
}
} else {
playmusic(MUSIC_PATH + musicList.get(Index));
}
}
});
}
private void nextMusic() {
viewHolder.next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (++Index > musicList.size()) {
Index = 0;
} else {
playmusic(MUSIC_PATH + musicList.get(Index));
}
}
});
}
private void seekbar() {
int progress = viewHolder.seekBar.getProgress();
int musicmaxlength = mediaPlayer.getDuration();
int seekbarmax = viewHolder.seekBar.getMax();
mediaPlayer.seekTo(musicmaxlength * progress / seekbarmax);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {//med
Index = position;
playmusic(MUSIC_PATH + musicList.get(Index));
}
java.io.IOException: setDataSource failed.
错误
请问是什么原因呢?