我正在尝试通过媒体播放器播放音频文件。它可以在棉花糖设备中使用。不幸的是,它不能在棒棒糖设备中使用。它显示了IOException java.io.IOException: Prepare failed.: status=0x105
。我不明白会有什么问题。我知道这是常见问题。但是我从旧问题中得不到任何解决方案。
try {
mPlayer.setDataSource(mChapter.getChapterAudioLink());
} catch (IllegalArgumentException e) {
e.printStackTrace();
Toast.makeText(context, "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
} catch (SecurityException e) {
e.printStackTrace();
Toast.makeText(context, "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
} catch (IllegalStateException e) {
e.printStackTrace();
Toast.makeText(context, "You might not set the URI correctly!", Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
try {
mPlayer.prepare();
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
playOrPause.setImageResource(android.R.drawable.ic_media_pause);
mAudioDialog.show();
mPlayer.start();
mDurationTextView.setText(convertSecondsToHMmSs(mPlayer.getDuration()) + "");
mSeekbarAudio.setMax(mPlayer.getDuration());
}
});
// mPlayer.prepareAsync();
} catch (IllegalStateException e) {
e.printStackTrace();
Toast.makeText(context, "You might not set the URI correctlyyy!", Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(context, "You might not set the URI correctlyy!", Toast.LENGTH_LONG).show();
}
我正在获取最后一个IOException。
答案 0 :(得分:2)
URL中的空格对我造成了此问题。我用%20
替换了空格,效果很好。
mPlayer.setDataSource(mChapter.getChapterAudioLink().replaceAll(" ","%20"));