使用Media Player播放.M3U链接

时间:2018-07-25 09:08:05

标签: java android m3u

我需要使用Media Player播放.M3U网址,但无法正常工作: 这是我的代码:

final MediaPlayer mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        mediaPlayer.setDataSource("http://xxxxxxxxx/1.m3u");
    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        mediaPlayer.prepare(); // might take long! (for buffering, etc)
    } catch (IOException e) {
        e.printStackTrace();
    }
    mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

        public void onPrepared(MediaPlayer mp) {
            mediaPlayer.start();
        }
    });

我已经阅读了关于stackoverflow的所有相关问题,但这对我没有帮助,

我也尝试使用此方法提取.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);

        }
        Toast.makeText(this, allURls + "", Toast.LENGTH_SHORT).show();
        Log.d("URL", String.valueOf(allURls));
        in.close();
        return allURls;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

但是当我称它为

时,它也不起作用
readURLs ("http://xxxxxxx.m3u");

所以请帮助我。

谢谢!

1 个答案:

答案 0 :(得分:0)

我会尝试以不同的方式初始化MediaPlayer

MediaPlayer player = MediaPlayer.create(this, Uri.parse("http://xxxxxxxxx/1.m3u"));

参考:

Why MediaPlayer throws NOT present error when creating instance of it?

完成操作后,也不要忘记释放MediaPlayer

player.release();

编辑:

我浏览了.m3u,但是其中包含其他.m3u8播放列表。我建议您使用 Google的ExoPlayer 代替,它可以播放几乎所有内容。 https://github.com/google/ExoPlayer