音频播放

1.activity_main.xml 布局文件

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/activity_main"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.sh.playaudiotest.MainActivity">
    <Button
        android:id="@+id/play"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Play"/>

    <Button
        android:id="@+id/pause"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Pause"/>

    <Button
        android:id="@+id/stop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Stop"/>

</LinearLayout>
 
 
2.MainActivity.java 主文件
  
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

     private MediaPlayer mediaPlayer =new MediaPlayer();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button play =(Button)findViewById(R.id.play);
        Button pause =(Button)findViewById(R.id.pause);
        Button stop =(Button)findViewById(R.id.stop);

        play.setOnClickListener(this);
        pause.setOnClickListener(this);
        stop.setOnClickListener(this);

        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.
                WRITE_EXTERNAL_STORAGE )!= PackageManager.PERMISSION_GRANTED){
            ActivityCompat.requestPermissions(MainActivity.this,new String[]{
                    Manifest.permission.WRITE_EXTERNAL_STORAGE},1); //动态申请 WRITE_EXTERNAL_STORAGE权限
        }else {
            initMediaPlay(); //初始华 mediaplay
        }
    }
    private void initMediaPlay(){
        try {
//           getExternalStorageDirectory() 获取到外部存储的目录 一般指SDcard(/storage/sdcard0)

            File file =new File(Environment.getExternalStorageDirectory().getAbsolutePath(),
                    "ringtone1.mp3");//创建一个文件来指定音频 的路径
//            mediaPlayer.setDataSource(file.getPath()); //指定音频的路径
            mediaPlayer.setDataSource("/storage/sdcard1/ringtone1.mp3");
            mediaPlayer.prepare(); //让 mediaPlayer进入准备状态

        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
//        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode){
            case 1:
                if (grantResults.length >1 && grantResults[0]==PackageManager.
                        PERMISSION_GRANTED) {
                        initMediaPlay();
                }else{
                    Toast.makeText(this, "拒绝权限将无法使用应用程序", Toast.LENGTH_SHORT).show();
                    finish();//将程序直接关掉
                }
                break;
            default:

        }
    }

    @Override
    public void onClick(View v) {
          switch (v.getId()){
              case R.id.play:
                     if (!mediaPlayer.isPlaying()){
                         mediaPlayer.start();
                     }
                  break;
              case R.id.pause:
                   if (mediaPlayer.isPlaying()){
                       mediaPlayer.pause();
                   }
                  break;
              case R.id.stop:
                  if (mediaPlayer.isPlaying()){
                      mediaPlayer.reset();
                      initMediaPlay();
                  }
                  break;
          }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer!=null){
            mediaPlayer.stop();
            mediaPlayer.release();
        }

    }
}

  

猜你喜欢

转载自blog.csdn.net/esucc/article/details/74928710