我想播放流式广播(.m3u格式),但我不知道它是怎么做的。
这个例子我尝试玩的方式:
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();
}
此代码不起作用。 求助。
答案 0 :(得分:13)
您必须先下载M3U文件。它只是一个文本文件,逐行读取。每行都有一个链接,您可以在媒体播放器中阅读。
使用类似的东西,
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;
}
}
答案 1 :(得分:9)
流媒体收音机遇到了同样的问题。但在我的情况下,我刚刚从网址中删除了 .m3u ,它确实有效!
尝试这样做:
mp.setDataSource("url");
代替
mp.setDataSource("url.m3u");