最近在做公司項(xiàng)目的時(shí)候嵌溢,有一個(gè)錄音的需求蛀蜜,需要實(shí)現(xiàn)錄音完成后上傳服務(wù)器,并在其他頁(yè)面從服務(wù)器獲取錄音的url進(jìn)行在線播放诚亚,本來(lái)一切運(yùn)行正常晕换,在手機(jī)上也能正常播放,結(jié)果在碰到一臺(tái)華為手機(jī)后我的噩夢(mèng)就開(kāi)始了站宗。下面是我的代碼:
try{
mPlayer = new MediaPlayer();
mPlayer.setDataSource(url);
mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mPlayer.start();
}
mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
if(mPlayer!=null){
mPlayer.release();
mPlayer=null;
}
}
});
mPlayer.prepareAsync();
}catch(IOException e){
}
在這臺(tái)華為手機(jī)上每次一執(zhí)行到mPlayer.prepareAsync()就會(huì)報(bào)錯(cuò): java.io.IOException: Prepare failed.: status=0x1闸准,在網(wǎng)上搜解決方案試驗(yàn)了都不行,而這個(gè)報(bào)錯(cuò)又是個(gè)通用的未知錯(cuò)誤梢灭,也不太好定位錯(cuò)誤原因夷家,然后我就開(kāi)始尋找原因,首先先將服務(wù)器上的音頻文件下載到本地敏释,然后用mediaPlayer進(jìn)行播放瘾英,可以正常播放,于是排除了解碼的原因颂暇,然后我就懷疑是URL的問(wèn)題(我們的項(xiàng)目url地址是https的)缺谴,然后我就自己搭建了一個(gè)http的后臺(tái),把錄音文件放上之后耳鸯,果然可以播放了湿蛔。原來(lái)是HTTPS導(dǎo)致的。
不過(guò)為什么會(huì)這樣我也不太清楚县爬,希望能夠幫到那些與我有同樣問(wèn)題的猿人們阳啥,也希望知道原因的大神可以留言告訴我一下,萬(wàn)分感謝财喳。