看着文档集成,居然一次次的报错,所以最后还是对比着官方的Demo来写一个Demo。
集成其实很简单,但是千万不要用模拟器测试,它不支持模拟器!!!!!!!最后用真机试了才发现自己已经成功了!!!!
准备工作
- 新建一个项目
- 下载官方Demo包,终端是其中的superplayerkit库(这个是播放器的UI库,方便你我他,不需要自己写界面)
开始集成
- 先把superplayerkit模块导入到新建的项目中
- 修改superplayerkit模块的build.gradle的原有配置(版本应该和新建的项目一致,避免报错,原有的complie要改成implementation)
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
minSdkVersion 19
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//这个就是腾讯的超级播放器的sdk了!!!
implementation "com.tencent.liteav:LiteAVSDK_Player:latest.release"
//这个是弹幕,不要的话可以删除,删除后还要去superplayerkit模块中删除相应的类和引用
implementation 'com.github.ctiao:DanmakuFlameMaster:0.5.3'
}
- 新建项目下的app模块的build.gradle除了添加superplayerkit也要添加"com.tencent.liteav:LiteAVSDK_Player:latest.release"依赖,要不也会报错!!!除了添加依赖的一个容易忽略的报错点外还有一个报错点就是找不到本地静态方法报错,我还把官方提供的so包都添加进去了也没有用,原因是要添加packagingOptions!!!
android {
...
defaultConfig {
...
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
}
//一定要加这个,否则会报No implementation found for void com.tencent.liteav.basic.datareport.TXCDRApi.nativeInitDataReport...
packagingOptions {
pickFirst '**/libc++_shared.so'
doNotStrip "*/armeabi/libYTCommon.so"
doNotStrip "*/armeabi-v7a/libYTCommon.so"
doNotStrip "*/x86/libYTCommon.so"
doNotStrip "*/arm64-v8a/libYTCommon.so"
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
...
//这个依赖除了superplayerkit模块要加,app主模块也要加,否则会报找不到找不到com.tencent.rtmp.ITXVodPlayListener的类文件...
implementation "com.tencent.liteav:LiteAVSDK_Player:latest.release"
implementation p