音乐播放器 路径设置错误 。。求帮忙

package com.example.administrator.musicplayer;

import android.annotation.TargetApi;
import android.app.Activity;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity {
private ListView listView;
private MusicList_Adapter adapter_musicList;
private List list;
String MUSIC_PATH = String.valueOf(Environment.getExternalStorageDirectory());
private Button button;
MediaPlayer mediaPlayer = new MediaPlayer();

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    MainActivity.this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    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.parseColor("#87CEEB"));

    setContentView(R.layout.activity_main);
    button = (Button) findViewById(R.id.start);
    System.out.println(Environment.getExternalStorageDirectory());
    listView = (ListView) findViewById(R.id.music_list);
    list = new ArrayList<>();
    musiclist();
    adapter_musicList = new MusicList_Adapter(this, list);
    listView.setAdapter(adapter_musicList);
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            playmusic(MUSIC_PATH + list.get(position));
        }
    });
}

private void playmusic(String path) {
    try {
        mediaPlayer.reset();
        mediaPlayer.setDataSource(path);
        mediaPlayer.prepare();
        mediaPlayer.start();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

private void musiclist() {
    File music = new File(MUSIC_PATH);
    if (music.listFiles(new MusicFilter()).length > 0) {
        for (File file : music.listFiles(new MusicFilter())) {
            list.add(file.getName());
        }
    }
}

}


上面是全部代码 SD卡的读写权限也都加上了 然后点列表的时候就报错
java.io.IOException: setDataSource failed.
求解决。。。

http://www.cocoachina.com/bbs/read.php?tid=261136