[英]Android MediaPlayer error: MediaPlayer error(1, -2147483648) on Stream from internet
我正在嘗試從URL流式傳輸音頻。 該代碼適用於其他URL,但其中一個在OnPrepared
方法中失敗,返回此錯誤代碼:(1,-2147483648)。 我讀過一些人說這是因為權限,但它是一個遠程文件,所以我無法設置權限。 我已經嘗試過與其他應用程序(如VLC和iTunes)的URL,並且它運行正常。 我的代碼在這里:
private void prepareradio() {
player = new MediaPlayer();
player.setAudioStreamType(MODE_WORLD_READABLE);
try {
player.setDataSource(url);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
player.setOnErrorListener(new OnErrorListener(){
public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
Toast.makeText(getApplicationContext(),"An error happened while preparing radio",Toast.LENGTH_LONG).show();
prepareradio();
playe.setEnabled(true);
hidenot();
return false;
}
});
我在Froyo和Gingerbread上也遇到了同樣的錯誤。 在較高的Androids中,同樣的視頻效果也很好。 最后經過大量研究,嘗試將Https Url更改為Http Url&Bingo。 它解決了我的問題。 我正在使用亞馬遜S3服務器,所以只需用“http”替換url中的“https”即可。
videoUrl= videoUrl.replaceFirst("https", "http");
PS:如果您使用H.264,為了支持舊版本,請確保視頻是基線編碼的。
如果您在早於Android 3.1的設備上進行測試,則可能無法播放AACP(如您的信息頁(AAC +)流所示)。
您的信息流的信息頁面:
為了找出您可以在目標設備上播放的流,請查看官方文檔: http : //developer.android.com/reference/android/media/AudioManager.html
如果您正在尋找如何處理以下aacp結帳:
https://stackoverflow.com/a/8833346/200272
我可以看到,mediaPlayer不支持此流。 Android支持AAC LC / LTP,但您的流是aacp。 我認為這可能是您問題的根本原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.