2011-07-14 46 views
6

Tôi muốn phát radio trực tuyến (định dạng .m3u), nhưng tôi không biết cách thực hiện.phát trực tiếp âm thanh .m3u

này ví dụ làm thế nào tôi cố gắng chơi:

final MediaPlayer mp = new MediaPlayer(); 
     try { 
      mp.setDataSource("url.m3u"); 
     } catch (IllegalArgumentException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     try { 
      mp.prepare(); 
      mp.start(); 
     } catch (IllegalStateException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

mã này không hoạt động. trợ giúp.

+0

có thể là một trợ giúp này bạn :: http://stackoverflow.com/questions/6283568/online-radio-streaming-app -for-android http://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/ –

Trả lời

13

Bạn phải tải xuống tệp M3U trước. Nó chỉ là một tập tin văn bản, đọc nó từng dòng một. Mỗi dòng sẽ có một liên kết mà bạn có thể đọc trong trình phát đa phương tiện của mình.

Sử dụng một cái gì đó như thế này,

public ArrayList<String> readURLs(String url) {    
     if(url == null) return null; 
     ArrayList<String> allURls = new ArrayList<String>(); 
     try { 

      URL urls = new URL(url); 
      BufferedReader in = new BufferedReader(new InputStreamReader(urls 
        .openStream())); 
      String str; 
      while ((str = in.readLine()) != null) { 
       allURls.add(str); 
      } 
      in.close(); 
      return allURls ; 
     } catch (Exception e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 
+0

làm cách nào tôi có thể sử dụng tính năng này với trình phát đa phương tiện? – user4292106

+0

@ user4292106 bạn có thể tải xuống các url và sau đó tải nó trong trình phát đa phương tiện. https://github.com/googlesamples/android-UniversalMusicPlayer – Hades

6

tôi đã cùng một vấn đề với streaming radio. Nhưng trong trường hợp của tôi, tôi vừa xóa .m3u khỏi url và nó đã hoạt động!

Cố gắng làm điều này:

mp.setDataSource("url"); 

thay

mp.setDataSource("url.m3u"); 
Các vấn đề liên quan