2013-03-15 84 views
0

我正在使用MediaPlayer函數從我的Android應用程序中傳輸來自遠程服務器的實時音頻流。但音頻波濤洶涌。問題不在於我的互聯網,因爲當我在電腦上播放時,播放完美無缺。可能是什麼問題?*注意:流是活的。 這是我使用的代碼:MediaPlayer()音頻口吃(安卓)

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

任何人?????????? – 2013-03-15 19:26:39

+0

您是否嘗試過流式傳輸其他mp3文件?也許問題在於這個mp3,只是猜測。 – 2013-03-15 19:46:59

+0

是的,我嘗試了很多不同的直播流,都有相同的口吃問題,但正常的MP3文件(如歌曲)播放完美... – 2013-03-15 20:00:12

回答

2

要鏈接到不是在流的開始發送大量的數據緩衝流。通常這不是問題,因爲客戶端負責確定回放速度,觀察數據傳輸速率並相應地管理客戶端緩衝區。這就是爲什麼當我給你一個鏈接來嘗試使用大緩衝區時,這不是一個問題。

基本上,音頻丟失是由於恆定的緩衝區欠載。要解決這個問題,你需要增加緩衝區大小。現在看來這是不可能的,但另一種方法可能是manage the HTTP client yourself and proxy the data to the MediaPlayer。這個聯繫是相當古老的......希望有人已經想出瞭如何從此以另一種方式做到這一點。我不是Android開發人員,所以我無法確定地告訴你。

我要做的第一件事就是致電mp.prepareAsync(),在MediaPlayer告訴您準備啓動後等待2秒鐘。我有一個預感,數據將繼續在後臺緩衝,直到您實際撥打.start()

+0

它的工作表示感謝。 – 2013-03-17 18:56:52