Android vlc 简单使用
16lz
2021-01-23
第一步:
//Vlc 播放器 implementation group: 'de.mrmaffen', name: 'vlc-android-sdk', version: '3.0.0'
第二步:
private LibVLC libVLC; private IVLCVout ivlcVout; private ArrayList options; private org.videolan.libvlc.MediaPlayer mediaPlayer; public void setVlc() { options=new ArrayList<>(); options.add(":file-caching=500");//文件缓存 options.add(":network-caching=500");//网络缓存 options.add(":live-caching=500");//直播缓存 options.add(":sout-mux-caching=500");//输出缓存 options.add(":codec=mediacodec,iomx,all"); options.add(":rtsp-frame-buffer-size=1000"); //RTSP帧缓冲大小,默认大小为100000 options.add(":rtsp-tcp");//RTSP采用TCP传输方式 options.add(":sout-rtp-proto={dccp,sctp,tcp,udp,udplite}");//RTSP采用TCP传输方式 jzVideo = findViewById(R.id.jz_video); libVLC = LibVlcSingle.getLibVLC(options); mediaPlayer = new org.videolan.libvlc.MediaPlayer(libVLC); ivlcVout = mediaPlayer.getVLCVout(); ivlcVout.setVideoView(jzVideo); ivlcVout.attachViews(); }public void play(String path) { media=new Media(libVLC,Uri.parse(path)); media.setHWDecoderEnabled(false, false); mediaPlayer.setMedia(media); media.release(); mediaPlayer.play(); media.setEventListener(new Media.EventListener() { @Override public void onEvent(Media.Event event) { Log.d("VLC- 播放状态:", event.type + ""); switch (event.type) { case Opening://打开中 showDialog1("打开中"); break; case Buffering://缓冲中 showDialog1("缓冲中"); break; case Paused://暂停中 showDialog1("暂停中"); break; case Error://播放出错 showDialog1("播放出错"); break; case Ended://播放出错 Toast.makeText(LiveActivity.this, "播放完成", Toast.LENGTH_SHORT).show(); break; case Playing://播放中 if (huds != null) { if (huds.isShowing()) { huds.dismiss(); } } break; default: if (huds != null) { if (huds.isShowing()) { huds.dismiss(); } } break; } } }); }
xml
单例:public class LibVlcSingle { private static LibVLC libVLC = null; public synchronized static LibVLC getLibVLC(ArrayList options) { if (libVLC == null) { if (options == null) { libVLC = new LibVLC(); } else { libVLC = new LibVLC(options); } } return libVLC; }}
更多相关文章
- Android菜单实现两种方式
- 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引
- 我今天的面试题,注册广播有几种方式,这些方式有何优缺点?请谈谈Andr
- Android 代码设置Color的几种方式
- Android控件隐藏方式 .
- Android客户端与服务端交互-客户端GET方式登录和客户端POST方式
- Android获取存储卡路径的方式
- android中设置AlertDialog的大小 .
- android 使用gdb调试的方式