2011-11-26 44 views
7
一個.PLS文件

任何人可以幫助我如何解析和玩這個.PLS在android系統解析和發揮Android的

[playlist] 
NumberOfEntries=1 
File1=http://stream.radiosai.net:8002/ 

回答

12

快速搜索導致這個非常基本的PlsParser從NPR應用,通過文件它的外觀將簡單地解析.pls文件並將所有嵌入的URL返回到字符串列表中。你可能會想看看它作爲一個起點。

之後,您應該能夠將URL提供給MediaPlayer對象,但我並不完全確定支持哪些格式/協議,或者在流式傳輸的情況下可能會應用哪些限制。媒體播放器調用的順序看起來有點像這樣。

MediaPlayer mp = new MediaPlayer(); 
mp.setDataSource("http://stream.radiosai.net:8002/"); 
mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mp.prepare(); //also consider mp.prepareAsync(). 
mp.start(); 

更新:據我所知,你幾乎可以從字面上採取引用的代碼,並把它自己使用。請注意,下面的代碼並不完整或經過測試。

public class PlsParser { 
     private final BufferedReader reader; 

     public PlsParser(String url) { 
      URLConnection urlConnection = new URL(url).openConnection(); 
      this.reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
     } 

     public List<String> getUrls() { 
      LinkedList<String> urls = new LinkedList<String>(); 
      while (true) { 
       try { 
        String line = reader.readLine(); 
        if (line == null) { 
         break; 
        } 
        String url = parseLine(line); 
        if (url != null && !url.equals("")) { 
         urls.add(url); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      return urls; 
     } 

     private String parseLine(String line) { 
      if (line == null) { 
       return null; 
      } 
      String trimmed = line.trim(); 
      if (trimmed.indexOf("http") >= 0) { 
       return trimmed.substring(trimmed.indexOf("http")); 
      } 
      return ""; 
     } 
} 

一旦你有,你可以簡單地創建一個新的PlsParser與.PLS文件的URL,並調用getUrls之後。每個列表項都是在.pls文件中找到的url。在你的情況下,只會是http://stream.radiosai.net:8002/。如上所述,您可以將其提供給MediaPlayer。

+1

@你能告訴我如何解析這個內容...任何代碼 – user1048958

+0

我不太清楚你遇到什麼問題?我添加了一些與實際解析相關的代碼,以幫助您開始。如果這不是你想要的,請詳細說明你想要完成的事情。 –