我正在尝试在我的android应用程序中实现IPTV播放器,所以我看到LibVlc支持此服务。我已经举了一个例子来使用媒体播放器,它使用单个视频url工作,但现在我想实现M3U文件来添加播放列表。我一直在寻找,但我没有找到一个很好的例子或指南如何实现这一点。
这是我现在的代码:
private void setVideoPlayer() {
LinearLayout previousLayout;
mLibVLC = new LibVLC(this);
mMediaPlayer = new MediaPlayer(mLibVLC);
mVideoLayout = findViewById(R.id.layoutVlc);
LinearLayout layoutTv = findViewById(R.id.linearLayoutTv);
LinearLayout layoutGraph = findViewById(R.id.linearLayoutGraph);
LinearLayout layoutTrack = findViewById(R.id.linearLayoutTrack);
if(layoutTv.getVisibility() == View.VISIBLE){
previousLayout = layoutTv;
}
else if (layoutGraph.getVisibility() == View.VISIBLE) {
previousLayout = layoutGraph;
} else {
previousLayout = layoutTrack;
}
ImageView ivMediaPlayer = findViewById(R.id.ivVideoPlayer);
ImageView ivExitMode = findViewById(R.id.ivExitTvMode);
ivMediaPlayer.setOnClickListener(v -> {
previousLayout.setVisibility(View.GONE);
layoutTv.setVisibility(View.VISIBLE);
mMediaPlayer.attachViews(mVideoLayout, null, ENABLE_SUBTITLES, USE_TEXTURE_VIEW);
final Media media = new Media(mLibVLC, Uri.parse("https://www.rmp-streaming.com/media/big-buck-bunny-360p.mp4"));
mMediaPlayer.setMedia(media);
media.release();
mMediaPlayer.play();
});
ivExitMode.setOnClickListener(v->{
mMediaPlayer.detachViews();
layoutTv.setVisibility(View.GONE);
previousLayout.setVisibility(View.VISIBLE);
});
}
我怎么能这么做呢?
M3U文件只是带有指向媒体文件的url列表的文本文件。
- 使用M3U URL创建媒体,
- 解析它,
- 一旦解析,访问子项目(那些是你想要播放的实际媒体url),像这个
media.subItems();
- 播放任何子项目,将它们交给媒体播放器。