项目最外部有一个dependencies.gradle,所有的项目依赖都在这里面,然后参考项目根目录的build.gradle,在最顶部有apply from: 'dependencies.gradle',这样gsyVideoPlayer就可以找到对应的依赖了。gradle方便可参考察Android蹲坑的疑难杂症集锦(兼Gradle) 二
确保你的拆包Application配置正常 。
-keep class tv.danmaku.ijk.** { *; }
-dontwarn tv.danmaku.ijk.**
-keep class com.shuyu.gsyvideoplayer.** { *; }
-dontwarn com.shuyu.gsyvideoplayer.**
可以配置ndkguolv,或者引用21以上的arm64,x84_64
android {
···
defaultConfig {
···
ndk {
//APP的build.gradle设置支持的SO库架构
abiFilters 'armeabi', 'armeabi-v7a', 'x86'
}
}
}
compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.7.5'
compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.7.5'
是否监听了列表滑动了,在监听里更新了列表之类的。
如果拍摄的视频播放不了,可以尝试用使用系统录制的项目:VideoRecord 或者使用JAVACV录制的项目:FFmpegRecorder,测试视频是否可以播放。
缓存不支持m3u8,播放m3u8格式格式需要cacheWithPlay为false
setUp(String url, boolean cacheWithPlay····)
TAG是用于判断多个列表下不同播放列表的 position也不要忘记哟
gsyVideoPlayer.setPlayTag(TAG);
gsyVideoPlayer.setPlayPosition(position);
/**
* 全屏隐藏虚拟按键,默认打开
*/
public void setHideKey(boolean hideKey)
/**
* 是否可以滑动界面改变进度,声音等
*/
public void setIsTouchWiget(boolean isTouchWiget)
多种setup效果,这是其中一类。
/**
* 设置播放URL
*
* @param url 播放url
* @param cacheWithPlay 是否边播边缓存
* @param cachePath 缓存路径,如果是M3U8或者HLS,请设置为false
* @param mapHeadData 头部信息
* @param objects object[0]目前为title
* @return
*/
@Override
public boolean setUp(String url, boolean cacheWithPlay, File cachePath, Map<String, String> mapHeadData, Object... objects) {