0

我正在使用 MediaPlayer 功能在我的 android 应用程序中从远程服务器流式传输实时音频流。但是音频断断续续,口吃。问题不在于我的互联网,因为当我在计算机上播放提要时,它可以完美播放。可能是什么问题?*注意:流是实时的。这是我正在使用的代码:

MediaPlayer mp = new MediaPlayer();
    try{
    mp.setDataSource("http://radiotool:80/feed 342.mp3");//hardcoded for testing purposes
    mp.prepare();
    mp.start();
    }
    catch(Exception e)
    {Log.d("Error came up man",", check the internet connection and stuff..");
4

1 回答 1

2

您链接到的流没有在流的开头发送大量数据缓冲区。通常这不是问题,因为客户端负责确定播放速率、观察数据传输速率并相应地管理客户端缓冲区。这就是为什么当我给你一个链接来尝试使用大缓冲区时,这不是问题。

基本上,音频丢失是由于不断的缓冲区欠载造成的。要解决此问题,您需要增加缓冲区大小。现在看来这是不可能的,但另一种方法可能是自己管理 HTTP 客户端并将数据代理到 MediaPlayer。该链接很旧......希望从那时起有人已经想出了如何以另一种方式做到这一点。我不是 Android 开发人员,所以我不能肯定地告诉你。

我首先要做的是 call mp.prepareAsync(),并在 MediaPlayer 告诉您它已准备好启动后等待 2 秒钟。我有一种预感,数据将继续在后台缓冲,直到您实际调用.start().

于 2013-03-16T22:54:14.633 回答