簡體   English   中英

Android MediaPlayer錯誤:來自互聯網的Stream上的MediaPlayer錯誤(1,-2147483648)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM