赞
踩
//基础包
implementation 'com.shuyu:gsyVideoPlayer-java:7.1.4'
//是否需要ExoPlayer模式
implementation 'com.shuyu:GSYVideoPlayer-exo2:7.1.4'
//更多ijk的编码支持
implementation 'com.shuyu:gsyVideoPlayer-ex_so:7.1.4'
String url="rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov"; videoPlayer.setUp(url, true, "测试视频"); VideoOptionModel videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp"); List<VideoOptionModel> list = new ArrayList<>(); list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_flags", "prefer_tcp"); list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "allowed_media_types", "video"); //根据媒体类型来配置 list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 20000); list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", 1316); list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "infbuf", 1); // 无限读 list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", 100); list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 10240); list.add(videoOptionModel); videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1); list.add(videoOptionModel); // 关闭播放器缓冲,这个必须关闭,否则会出现播放一段时间后,一直卡主,控制台打印 FFP_MSG_BUFFERING_START videoOptionModel = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0); list.add(videoOptionModel); GSYVideoManager.instance().setOptionModelList(list); //增加封面 ImageView imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); videoPlayer.setThumbImageView(imageView); //增加title videoPlayer.getTitleTextView().setVisibility(View.VISIBLE); //设置返回键 videoPlayer.getBackButton().setVisibility(View.VISIBLE); //是否可以滑动调整 videoPlayer.setIsTouchWiget(true); //设置返回按键功能 videoPlayer.getBackButton().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); videoPlayer.startPlayLogic();
AndroidManifest中Activity增加下面配置
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
转自:Android-基于GSYVideoPlayer的rtsp、rtmp协议流直播开发
在app下的build.gradle中添加
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。