第一步:

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

更多相关文章

  1. 【Android(安卓)内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 |
  2. android视频不播放的问题
  3. android视频不播放的问题
  4. Android之SharedPreferences详解与原理分析
  5. [转]Android(安卓)Audio简述
  6. 实现简单的Android的播放视频功能
  7. android 播放视频
  8. Android中的AnimationDrawable的使用
  9. Android(安卓)WebView加载H5音视频自动播放、关闭Activity停止播

随机推荐

  1. Android(安卓)DataPickerDialog组建只显
  2. Android手机上监听短信的两种方式
  3. 2014.01.21(2)——— android开发实例之vie
  4. mac系统连接Android手机
  5. 自定义Android,toast,以及多线程toast
  6. 解决Gradle minifyEnabled无法找到错误
  7. 在Android系统中调用系统前置摄像头
  8. Android的图片叠加
  9. Android(安卓)抓包的一些命令 及 adb使用
  10. Android下执行Runtime.getRuntime().exec