2016-01-19 82 views
0

Iam試圖構建一個用於播放在線廣播的Android應用程序。代碼在模擬器中正常工作。但是當安裝在手機中時不起作用。音頻流不在智能手機中播放

MediaPlayer mediaPlayer = new MediaPlayer(); 
String url = "http://5293.live.streamtheworld.com:3690/JACK2_LOWAAC_SC"; 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(url); 
mediaPlayer.prepare(); // might take long! (for buffering, etc) 
mediaPlayer.start(); 

鏈接格式有問題嗎?我試圖在html5中播放相同的鏈接,但它在桌面上工作正常,但在手機中打開時同一網站的鏈接無法正常工作。也有任何問題或html5中的任何組件不能在智能手機bu工作在桌面上? 我需要播放實時流,而不是像mp3那樣的靜態文件。您可以從www.listenlive.eu/uk.html獲取一些URL並嘗試播放。我的代碼中的網址僅限於本網站。下載VLC文件,並用任何文本編輯器打開它,你會得到的網址。

回答

0

use mediaPlayer.prepareAsync();而不是mediaPlayer.prepare();因爲您是從網絡流媒體,也爲互聯網添加權限

<uses-permission android:name="android.permission.INTERNET"/> 

而且

String url = "http://5293.live.streamtheworld.com:3690/JACK2_LOWAAC_SC"; 

不爲我工作,而不是我使用

final String url = "http://vprmix.streamguys.net/vprmix64.mp3"; 

私人布爾IsPlaying模塊= FALSE;

 public void streamAudio(String url) { 

     if (!isPLAYING) { 
      isPLAYING = true; 
      mediaPlayer = new MediaPlayer(); 
      try { 
       mediaPlayer.setDataSource(url); 
       mediaPlayer.prepareAsync(); 
       mediaPlayer.start(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
       Log.e("mediaPlayer", "prepare() failed"); 
      } 
     } else { 
      isPLAYING = false; 
      stopPlaying(); 
     } 
    } 

    private void stopPlaying() { 
     mediaPlayer.release(); 
     mediaPlayer = null; 
    } 
+0

謝謝。但我需要播放實時流,而不是像mp3那樣的靜態文件。你可以請一些URL形式[www.listenlive.eu/uk.html](http://www.listenlive.eu/uk.html)並嘗試播放。上面的網址僅限於本網站。下載VLC文件並用任何文本編輯器打開它,您將獲得URL –