您的位置:首页 > 移动开发 > Android开发

android的本地音频播放问题....为什么不能播放音乐?

2017-01-01 03:18 483 查看
我用的是5.0系统的nexus5真机。《第一行代码》中的播放音频章节,代码和书中是一样的,程序也安装好了,可是为什么不能播放音乐呢?小白求助,谢谢.....

错误提示:
E/MediaPlayer: Error (-38,0)

E/MediaPlayer: start called in state 0


下面是源代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button play;

    private Button pause;

    private Button stop;

    private MediaPlayer mediaPlayer=new MediaPlayer();

    @Override

    protected void onCreate(Bundle savedInstanceState){

        super.onCreate(savedInstanceState);

        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.activity_main);

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

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

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

        initMediaPlayer();

        play.setOnClickListener(this);

        pause.setOnClickListener(this);

        stop.setOnClickListener(this);

    }

    private void initMediaPlayer(){

        try{

            File file = new File(Environment.getExternalStorageDirectory(),"music.mp3");

            mediaPlayer.setDataSource(file.getPath());

            mediaPlayer.prepare();

            mediaPlayer.start();

        }catch (Exception e){

            e.printStackTrace();

        }

    }

    @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();

                    initMediaPlayer();

                }

                break;

            default:

                break;

        }

    }

    @Override

    protected void onDestroy(){

        super.onDestroy();

        if (mediaPlayer!=null){

            mediaPlayer.stop();

            mediaPlayer.release();

        }

    }

}


请问是哪里错了呢?谢谢大神解答...感激不尽....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: