Java 在状态1中调用了PrepareAsync
我正在尝试从Uri播放mp3文件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
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。知道如何解决此问题吗