美文网首页Android
Android java.io.IOException: Pre

Android java.io.IOException: Pre

作者: dasamanren | 来源:发表于2016-10-20 18:04 被阅读0次

    最近使用MediaPlayer播放网络资源音频时,遇到一个问题,
    就是在使用红米手机播放时,会提示播放错误,mediaPlayer.prepare();报了IO异常java.io.IOException: Prepare failed.: status=0x1,但是使用nexus 6p并没有出现,这也就表示只有部分的手机会出现这种问题。
    报错源码为:

    mediaPlayer.reset();
    mediaPlayer.setDataSource(videoUrl);
    mediaPlayer.prepare();// prepare之后自动播放
    

    当我google之后得出的答案都是

    File tempFile = new File(path);           
    FileInputStream fis = new FileInputStream(tempFile);             
    mediaPlayer.reset();             
    mediaPlayer.setDataSource(fis.getFD());             
    mediaPlayer.prepare();             
    mediaPlayer.start();
    

    其实这个方案只适合播放本地音频,并不能解决网络音频的问题。
    后来我尝试了多种方案,发现了能播放的方法

    mediaPlayer = MediaPlayer.create(context, Uri.parse(videoUrl));
    mediaPlayer.start();
    

    然后我想,是不是播放的方法不对,尝试了一下将prepare()替换成star(),然而并没有用,还是会报错。
    再次对比,是不是设置videoUrl的方法有问题,不应该直接传Strring类型的,而应该转成Uri,一试之后,果然可行,所以最终解决MediaPlayer播放网络资源音频报java.io.IOException: Prepare failed.: status=0x1的方法为:

    mediaPlayer.reset();
    mediaPlayer.setDataSource(context, Uri.parse(videoUrl));
    mediaPlayer.prepare();// prepare之后自动播放
    

    希望对大家都有帮助,谢谢

    相关文章

      网友评论

        本文标题:Android java.io.IOException: Pre

        本文链接:https://www.haomeiwen.com/subject/ygifuttx.html