Android java.io.IOException: Prepare failed.: status=0x1

最近使用MediaPlayer播放網(wǎng)絡(luò)資源音頻時,遇到一個問題,
就是在使用紅米手機播放時,會提示播放錯誤,mediaPlayer.prepare();報了IO異常java.io.IOException: Prepare failed.: status=0x1,但是使用nexus 6p并沒有出現(xiàn),這也就表示只有部分的手機會出現(xiàn)這種問題。
報錯源碼為:

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

當(dāng)我google之后得出的答案都是

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

其實這個方案只適合播放本地音頻,并不能解決網(wǎng)絡(luò)音頻的問題。
后來我嘗試了多種方案,發(fā)現(xiàn)了能播放的方法

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

然后我想,是不是播放的方法不對,嘗試了一下將prepare()替換成star(),然而并沒有用,還是會報錯。
再次對比,是不是設(shè)置videoUrl的方法有問題,不應(yīng)該直接傳Strring類型的,而應(yīng)該轉(zhuǎn)成Uri,一試之后,果然可行,所以最終解決MediaPlayer播放網(wǎng)絡(luò)資源音頻報java.io.IOException: Prepare failed.: status=0x1的方法為:

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

希望對大家都有幫助,謝謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 安卓平臺和聲音錄制與播放相關(guān)的主要是4個類:MediaRecorder,MediaPlayer,SoundPool...
    閑庭閱讀 10,890評論 1 47
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,326評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • Media Playback Android多媒體框架包涵了對播放多種通用媒體的類型的支持,所以你可以很容易的集成...
    VegetableAD閱讀 988評論 0 0
  • 分手之前,分手之后一直都在想你,可是我并沒有去糾纏你,畢竟那已經(jīng)沒有了意義,你說已經(jīng)對我沒有感覺了,只是我還在一廂...
    深夜卡片閱讀 812評論 0 0

友情鏈接更多精彩內(nèi)容