未经允许,不要转载
代码下载链接:http://download.csdn.net/download/chencaw/10256341
(1)界面布局三个按钮
(2)设置权限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.lenovo.chenopenandplaymp3"> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <application
(2)代码如下
import android.Manifest; import android.content.Intent; import android.content.pm.PackageManager; import android.database.Cursor; import android.graphics.BitmapFactory; import android.net.Uri; import android.provider.MediaStore; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.media.MediaPlayer; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button btopenfile = null;//tz private Button bttz = null;//tz private Button btbf = null;//bf private Toast toast=null; private MediaPlayer mp3Player = null; private int REQUEST_CODE_SELECT_MP3 = 121; String gbselectedMp3Path = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btopenfile = (Button) findViewById(R.id.button); bttz = (Button) findViewById(R.id.button2); btbf = (Button) findViewById(R.id.button3); mp3Player = new MediaPlayer(); //切记初始化构架 btopenfile.setOnClickListener(listener); bttz.setOnClickListener(listener); btbf.setOnClickListener(listener); } private void MP3AutoPlay() { try { mp3Player.reset(); mp3Player.setDataSource(gbselectedMp3Path); mp3Player.prepare(); mp3Player.start(); } catch (Exception e) { e.printStackTrace(); } } private void MP3AutoStop() { mp3Player.stop(); } public void checkPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED ) { toast("have request this permission").show(); } else { requestPermission(); } } public Toast toast(String text) { if (toast == null) { toast = Toast.makeText(this, text, Toast.LENGTH_SHORT); } else { toast.setText(text); } return toast; } public void requestPermission() { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100); } private void selectMp3() { Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setType("audio/*"); // 这个函数会自动调用下面的函数 startActivityForResult(intent, REQUEST_CODE_SELECT_MP3); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_SELECT_MP3) { // 获取选择的mp3 Uri selectedMp3 = data.getData(); String[] filePathColumn = { MediaStore.Audio.Media.DATA }; Cursor cursor = getContentResolver().query( selectedMp3, new String[] { MediaStore.Images.ImageColumns.DATA }, null, null, null ); // 获取所有歌曲 // Cursor cursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, // null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); if (null == cursor) { return; } cursor.moveToFirst(); int column_index = cursor.getColumnIndex(MediaStore.Audio.Media.DATA); // int columnIndex = cursor.getColumnIndex(filePathColumn[0]); // 获取到MP3的路径 String selectedMp3Path = cursor.getString(column_index); gbselectedMp3Path = selectedMp3Path; toast(selectedMp3Path).show(); try { mp3Player.reset(); mp3Player.setDataSource(selectedMp3Path); mp3Player.prepare(); mp3Player.start(); } catch (Exception e) { e.printStackTrace(); } } super.onActivityResult(requestCode, resultCode, data); } private View.OnClickListener listener = new View.OnClickListener() { public void onClick(View v) { if (v == btopenfile) { checkPermission(); selectMp3(); // MP3AutoPlay(); } if (v == btbf) { MP3AutoPlay(); } if (v == bttz) { MP3AutoStop(); } } }; }