我需要使用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");
所以请帮帮我。
提前致谢!
最佳答案
我会尝试以不同的方式初始化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关于java - 使用Media Player播放.M3U链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51515059/