# AdPlayer **Repository Path**: licheedev/AdPlayer ## Basic Information - **Project Name**: AdPlayer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: 2.0.0 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2020-09-18 - **Last Updated**: 2022-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AdPlayer ```groovy allprojects { repositories { ... mavenCentral() } } dependencies { // 必须 implementation 'com.licheedev:adplayer:2.1.5' //该依赖包含exoplayer解码和MediaPlayer解码 //注意exoplayer的最小支持SDK版本为16 implementation 'cn.jiajunhui:exoplayer:342_2132_019' //该依赖包含ijkplayer解码和MediaPlayer解码 implementation 'cn.jiajunhui:ijkplayer:342_088_012' //ijk官方的解码库依赖,较少格式版本且不支持HTTPS。 implementation 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8' # Other ABIs: optional implementation 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8' implementation 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8' implementation 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8' implementation 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8' } ``` ## 项目参考 https://github.com/jiajunhui/PlayerBase https://github.com/CarGuo/GSYVideoPlayer ## 配置(Kotlin) ```kotlin AdPlayerConfig.instance() .init(this) // 可选,配置IjkPlayer播放器框架 .configPlayerLibrary { thread { IjkMediaPlayer.loadLibrariesOnce(null) IjkMediaPlayer.native_setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT) } PlayerConfig.addDecoderPlan( DecoderPlan(1, IjkPlayer::class.java.name, "IjkPlayer") ) PlayerConfig.setDefaultPlanId(1) } // 可选,配置ExoPlayer播放器框架 .configPlayerLibrary { PlayerConfig.addDecoderPlan( DecoderPlan(2, ExoMediaPlayer::class.java.name, "ExoPlayer") ) PlayerConfig.setDefaultPlanId(2) } // 设置图片加载器(可选),默认使用Glide加载图片 .setImageLoader(DefaultGlideImageLoader()) // 设置视频缓存文件夹路径 .setCacheDir(getAdCacheDir(this)) // 设置视频文件下载器,仅使用setUseFileLruCache()有效 .setVideoDownLoader(DefaultVideoDownLoader()) // 下面两种缓存策略互斥,只有最后设置的才生效 // 缓存策略1,先下载文件到Lru文件缓存里面,再播放 .setUseFileLruCache(1024 * 1024 * 1024L) // 缓存策略2,使用AndroidVideoCache边下边播 .setUseVideoCache { defaultCacheDir -> val builder = HttpProxyCacheServer .Builder(this@AppKt) // 这里也可以自定义缓存路径 .cacheDirectory(defaultCacheDir) // 缓存策略 .maxCacheSize(1024 * 1024 * 1024L) // 最大缓存文件总大小 // .maxCacheFilesCount(10); // 或者用这个,最大缓存文件个数 builder.build() } ``` ## 配置(Java) ``` AdPlayerConfig.instance().init(this) // 可选,配置IjkPlayer播放器框架 .configPlayerLibrary(new Runnable() { @Override public void run() { // 配置ijkplayer PlayerConfig.addDecoderPlan( new DecoderPlan(1, IjkPlayer.class.getName(), "IjkPlayer")); PlayerConfig.setDefaultPlanId(1); new Thread(new Runnable() { @Override public void run() { try { IjkMediaPlayer.loadLibrariesOnce(null); IjkMediaPlayer.native_setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT); } catch (Exception e) { e.printStackTrace(); } } }).start(); } }) // 可选,配置ExoPlayer播放器框架 .configPlayerLibrary(new Runnable() { @Override public void run() { PlayerConfig.addDecoderPlan( new DecoderPlan(2, ExoMediaPlayer.class.getName(), "ExoPlayer")); PlayerConfig.setDefaultPlanId(2); } }) // 设置图片加载器(可选),默认使用Glide加载图片 .setImageLoader(new DefaultGlideImageLoader() { @Override protected RequestBuilder toConfigRequest( RequestBuilder requestBuilder) { return requestBuilder.apply(DEFAULT_REQUEST_OPTS) .placeholder(R.drawable.ic_default_ad_placeholder); } }) // 设置视频缓存文件夹路径 .setCacheDir(getAdCacheDir(this)) // 设置视频文件下载器,仅使用setUseFileLruCache()有效 .setVideoDownLoader(new DefaultVideoDownLoader()) // 下面两种缓存策略互斥,只有最后设置的才生效 // 缓存策略1,先下载文件到Lru文件缓存里面,再播放 .setUseFileLruCache(1024 * 1024 * 1024L) // 缓存策略2,使用AndroidVideoCache边下边播 .setUseVideoCache(new CacheServerCreator() { @Override public HttpProxyCacheServer getProxyCacheServer(File defaultCacheDir) { HttpProxyCacheServer.Builder builder = new HttpProxyCacheServer.Builder(App.this) // 这里也可以自定义缓存路径 .cacheDirectory(defaultCacheDir) // 缓存策略 .maxCacheSize(1024 * 1024 * 1024L); // 最大缓存文件总大小 // .maxCacheFilesCount(10); // 或者用这个,最大缓存文件个数 return builder.build(); } }); ```