流媒体.m3u音频

7

我想播放流媒体电台(.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();
        }

这段代码无法运行。 请帮忙。


也许这个可以帮到你:https://dev59.com/xG015IYBdhLWcg3w_Aughttp://blog.pocketjourney.com/2008/04/04/tutorial-custom-media-streaming-for-androids-mediaplayer/ - Nikunj Patel
请检查此链接:https://github.com/abdullahfarwees/Android-Online-Radio-app - Abdullah Farweez
2个回答

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

我该如何在媒体播放器中使用这个? - user4292106
@user4292106 你可以下载这些URL,然后在媒体播放器中加载它。https://github.com/googlesamples/android-UniversalMusicPlayer - Hades

10

我曾经遇到过与网络电台流媒体相同的问题。但是在我的情况下,我只是从网址中删除了.m3u并且它就可以正常工作了!

你也可以尝试这样做:

mp.setDataSource("url");

相反

mp.setDataSource("url.m3u");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接