MediaPlayer()音频口吃(android)

时间:2013-03-15 18:41:56

标签: android media-player audio-streaming live-streaming

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

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..");

1 个答案:

答案 0 :(得分:2)

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

基本上,音频丢失是由于持续的缓冲区欠载。要解决此问题,您需要增加缓冲区大小。现在看来这是不可能的,但另一种方法可能是manage the HTTP client yourself and proxy the data to the MediaPlayer。这个链接很老了......希望有人从那时起就想出了如何以另一种方式做到这一点。我不是Android开发人员,所以我无法肯定地告诉你。

我首先要做的是致电mp.prepareAsync(),并在MediaPlayer告诉您已准备好开始后等待2秒。我预感到数据将在后台继续缓冲,直到您实际调用.start()