Java 在状态1中调用了PrepareAsync

Java 在状态1中调用了PrepareAsync,java,android,Java,Android,我正在尝试从Uri播放mp3文件 final MediaPlayer player=new MediaPlayer(); player.reset(); player.setAudioStreamType(AudioManager.STREAM_MUSIC); try { player.setDataSource(getActiv

我正在尝试从Uri播放mp3文件

                final MediaPlayer player=new MediaPlayer();
                player.reset();
                player.setAudioStreamType(AudioManager.STREAM_MUSIC);
                try {
                    player.setDataSource(getActivity().getApplicationContext(),audio);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    @Override
                    public void onCompletion(MediaPlayer mediaPlayer) {
                        mediaPlayer.reset();
                        mediaPlayer.release();

                    }
                });
                player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mediaPlayer) {
                        mediaPlayer.start();
                    }
                });
             File audiofile=new File(audio.getPath());
                String realpath=getRealPathFromUri(audio);
                File file=new File("/data/data/com.example.focusit/Focusit_SOS/tt_temp");
            if(!file.exists())
            {
                Toast.makeText(getContext(), "Director focus it does not existed", Toast.LENGTH_SHORT).show();
                file.mkdirs();
            }
                try {
                    FileUtils.copy(new FileInputStream(audiofile),new FileOutputStream(file));
                } catch (IOException e) {
                    e.printStackTrace();
                }
              try {
                   player.prepareAsync();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                    Log.d("IllegalState","Media Player is in illegal state");
                }catch (IllegalArgumentException e)
               {
                   Log.d("IllegalArgument","audio track is not correctl formated");
                   e.printStackTrace();
               }
异常发生在player.prepareAsync()上,这是非法的状态异常。发生异常也是由于在状态1中调用了prepareAsync。知道如何解决此问题吗