安卓MediaPlayer错误:从互联网流媒体中出现MediaPlayer错误(1,-2147483648)

4

我正在尝试从一个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;
        }
    });

哪个流?Logcat在哪里? - Bo.
流媒体地址为:http://online.radiodifusion.net:8048/,而日志仅显示两次:MediaPlayer 错误 (1, -2147483648)。 - user1423168
E/MediaPlayer(12263): 错误 (1, -2147483648) E/MediaPlayer(12263): 错误 (1,-2147483648) @Bo. - user1423168
3个回答

3

我在Froyo和Gingerbread上也遇到了同样的错误。在更高版本的Android上,同一视频播放得很好。最后经过大量研究,尝试将Https Url更改为Http Url,终于解决了我的问题。我正在使用Amazon S3服务器,所以只需将url中的"https"替换为"http"即可。

  videoUrl= videoUrl.replaceFirst("https", "http"); 

提示: 如果您使用的是H.264,请确保视频已将基本线编码以支持旧版本。


2

我已经尝试了另一个4.0 SDK下的项目,但也无法运行,所以我将尝试使用那些库,希望它能够运行,感谢 @Bo。 - user1423168
不要忘记,如果您找到了解决问题的方法或其中一个答案修复了您的问题,请投票选择正确的答案。 - Bo.

0

从我所看到的情况来看,这个流媒体不被mediaPlayer支持。Android支持AAC LC/LTP,但你的流媒体是aacp格式的。我认为这可能是你问题的根本原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接