//MainActivity中代码如下:
import android.content.ContentResolver;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private TextView singerName,singer;
private ArrayList<MusicInfo> list=new ArrayList<>();
private MediaPlayer play;
private int number;
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
listView = (ListView)findViewById(R.id.listView);
singerName = (TextView)findViewById(R.id.singName);
singer = (TextView)findViewById(R.id.singer);
//设置数据源
//给ListView添加适配器
adapter = new MyAdapter(list, this);
listView.setAdapter(adapter);
//加载本地音乐
loadLocalData();
//初始化媒体播放器
play = new MediaPlayer();
//设置点击事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
number=position;
MusicInfo info = list.get(position);
singer.setText(info.getSinger());
singerName.setText(info.getSingName());
//因为有可能其他音乐正在被播放,所以要先停止再播放
stopMusic();
//播放音乐
play.reset();
try {
play.setDataSource(info.getPath());
playMusic();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
private void loadLocalData() {
//1.获得ContentResolver对象
ContentResolver resolver = getContentResolver();
//2.获得Uri地址
Uri musicuri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
//3.查找地址中的内容
Cursor cursor = resolver.query(musicuri, null, null, null, null);
//4.遍历cursor信息
int id=0;
while (cursor.moveToNext()){
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String displayname = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
String singer = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
SimpleD