2011-11-26 21 views

Respuesta

12

Una búsqueda rápida como resultado esta muy básico PlsParser desde la aplicación a NPR que, por .pls su aspecto, simplemente analizará el archivo .pls y devolverá todas las URL incrustadas en una lista de cadenas. Probablemente quieras echarle un vistazo a eso como punto de partida.

Después de eso, debería ser capaz de alimentar la URL a un objeto MediaPlayer, aunque no estoy completamente seguro de qué formatos/protocolos son compatibles, o qué limitaciones pueden aplicarse en el caso de la transmisión. La secuencia de llamadas de los reproductores multimedia se verá algo así.

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

Actualización: Por lo que yo puedo decir, casi se puede tomar literalmente el código de referencia y lo puso a su propio uso. Tenga en cuenta que el código siguiente no está completo ni probado.

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 ""; 
     } 
} 

Una vez que tenga que, simplemente puede crear un nuevo PlsParser con la url del archivo .pls y llame getUrls después. Cada elemento de la lista será una URL como se encuentra en el archivo .pls. En tu caso, será http://stream.radiosai.net:8002/. Como se dijo, puede alimentar esto al MediaPlayer.

+1

@ ¿me puede decir cómo analizar este contenido ... cualquier código – user1048958

+0

No estoy muy seguro de qué parte tiene problemas? Agregué un código relacionado con el análisis real para ayudarlo a comenzar. Si eso no es lo que estás buscando, elabora un poco más sobre lo que estás tratando de lograr. –

Cuestiones relacionadas